我正在尝试从终端写入文件中的内容。文件正在创建,但内容未写入文件。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(int argc, char *argv[])
{
FILE *fp;
fp=fopen(argv[1],"w");
char ch;
while((ch=getchar())!=EOF)
{
putc(ch,fp);
}
fclose(fp);
return 0;
}
答案 0 :(得分:5)
如果您没有发出EOF信号(Windows中的 Ctrl + Z 和Linux中的 Ctrl + D ),则循环将继续执行,直到收到该信号
如果您在程序仍在执行时尝试用自己的眼睛读取文件,那么文件流将不会关闭(fclose(fp);
将无法执行),因此该文件将显示为空,即使文件流关闭时会向您显示内容。
答案 1 :(得分:1)
以下工作正常:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(int argc, char *argv[])
{
FILE *fp;
fp=fopen(argv[1],"w");
char ch;
while(1)
{
ch = (char)getchar();
putc(ch,fp);
if(ch == '.') break;
}
fclose(fp);
return 0;
}