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((ch=getchar())!=EOF)
        {
           putc(ch,fp);
        }
        fclose(fp);
        return 0;
    }
4

2 回答 2

5

如果您不发出 EOF 信号(Ctrl+Z在 Windows 和Ctrl+DLinux 中),那么循环将继续执行,直到收到该信号。

如果您在程序仍在执行时尝试用自己的眼睛读取文件,则文件流将不会关闭(fclose(fp);不会执行),因此文件将显示为空,即使内容会显示对你来说,当文件流关闭时。

于 2017-09-19T09:53:39.837 回答
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;
}
于 2017-09-19T10:35:04.197 回答