Tag: fputs

如何使用fgets从用户读取多行输入并使用C中的fput将其写入文件?

我想从用户读取输入(多行)并使用fputs()将其写入文件。 这是我的代码 #include #include int main() { FILE *fp; char s[25]; fp=fopen(“myname”,”w”); if(fp==NULL) { perror(“Error opening file\n”); exit(1); } while(fgets(s,25,stdin)!=NULL) fputs(s,fp); fclose(fp); return 0; } 从用户那里获得输入后,我使用Ctrl + C来关闭程序的输入提示(我正在使用linux)。 然后,如果我打开文件,它什么都没有。 我怎么解决这个问题? 使用fputs()和fgets()有什么问题吗?

为什么当我们在文件中写\ n时它会转换为\ r \ n组合?

我从书中读到这个概念,当我们尝试使用fputs()将文件写入文件时,fputs()将\ n转换为\ r \ n组合,然后如果我们使用fgets()读回同一行,则反向转换发生意味着\ r \ n回转换为\ n。 我不知道这背后的目的是什么?

c:gets()和fputs()是危险的函数?

在学校的计算机实验室,我们使用fputs编写了一个程序,并且编译器返回了一个错误gets is a dangerous function to use和fputs的类似错误 但在家里,当我输入这段代码: #include main() { FILE *fp; char name[20]; fp = fopen(“name.txt”,”w”); gets(name); fputs(name,fp); fclose(fp); } 我什么都没有得到任何错误。 在学校的那个与这个相似,只是有点冗长而且有更多的变数。 我在家里使用codeblocks,在学校使用fedora提供的默认gcc。 这可能是编译器的问题吗?

覆盖到c中的特定行

我有一个大约2000行文本的文件,我在我的程序中生成,每行都有一个员工的信息,它像这样输出 1 1 Isaac Fonseca 58 c 1600 1310.40 6 1 0.22 2164.80 1 2 1 Manuel Gutierrez 22 d 1700 1523.37 4 1 0.13 897.26 1 3 1 Daniel Bernal 34 c 1600 1195.84 2 1 0.26 836.16 1 4 1 Miguel Gonzalez 43 e 1800 1195.84 0 1 0.15 0.00 1 但我每当我编辑员工信息时我都要更新文件,我正在做的是我搜索该行并尝试重写它 我已经看到了有同样问题的人的以下问题,但是当我尝试写入文件时,它总是写入文件的末尾 […]