c 语言给我的感觉一直是一个黑框框,除了打印一些文本字符,输入一些字符之外,似乎没有了别的用处。
今天刚好学到一个装逼的本事,可以通过简单的读写字符的程序,实现文本文件的读写。
代码很简单(stdincc.c):
#include <stdio.h>
int main(int argc, char const *argv[])
{
char ch;
while ( (ch = getchar()) != EOF ){
// printf("%c",ch);
putchar(ch);
}
return 0;
}
关键是输入。
首先,需要编译一下:gcc -o ss stdincc.c
,编译之后就会得到一个名为ss
的二进制文件/可执行程序。
然后,比如当前目录下有一个readme.txt
文件,里面有一些文字。然后,想将这个readme.txt
的内容读出来,打印到控制台上面。只要执行:./ss <readme.txt
,这样就将readme.txt
的内容全部打印到控制台上面了。
为何如此:getchar(); 并不关心输入的来源是键盘还是文件还是其他输入设备。只要有输入,并且有结束符,就会完成这样的输入,并转换成输出到控制台。
然后,还有写,如何将一个文件的内容写到另外的文件呢?只要输入如下的命令:./ss <readme.txt >target.txt
,这样就可以将readme.txt
的全部内容拷贝到target.txt
中,并且如果target.txt
不存在,程序会自动去创建这个文件。
为何如此:putchar(); 也不关心输出设备具体是屏幕,还是文件或者其他输出设备。
当然,除了这种复制操作,也可以将控制台的输入,写入文件中。
- 粗体是输入
$ ./ss > target.txt
男人大可不必百口莫辩
女人实在无需楚楚可怜^D
像这样的操作,就会将这两句话写到target.txt
里面了。
装逼结束。
end.