在文本文件中插入 400 个数字
Inserting 400 numbers in a text file
我正在尝试在文本文件中写入从 1 到 400 的数字。我正在使用下面的代码,运行 没有任何错误,但文件为空。
如有任何帮助,我们将不胜感激。
#include <stdio.h>
int main(void)
{
FILE *filePointer;
filePointer = fopen("file.txt","w");
int i;
for(i=0; i > 400; i++)
{
fputs("%d, ",i,filePointer);
}
fclose(filePointer);
return(0);
}
不,至少没有一些听起来很严肃的警告是不可能编译的。
您正在使用 fputs()
就好像它是 fprintf()
,向它传递一个整数而不是 FILE
指针(编译器不应允许)和一个额外的参数 (编译器不应允许)。
你的 for
循环也坏了。中间部分是一个表达式,只要循环应该 运行 就应该 为真,而不是相反。
你的意思是:
for(i = 0; i < 400; ++i)
{
fprintf(filePointer, "%d, ", i);
}
此外,您应该先检查文件是否确实打开,然后再假设它确实打开了。 I/O 可能会失败。
除了 fputs() 的用法,问题是:
for(i=0; i > 400; i++)
如果用零初始化一个变量并执行一个循环,只要它大于 400,就不会持续太久。
fputs
语法似乎有误。我认为是:
int fputs(const char *str, FILE *stream)
选择 @unwind 的 方法(如上所述),但如果您仍想使用 fputs
,则您的 fputs 行应扩展为 3 行:
char temp[4]; // String to store 3-digit number + '[=11=]'
sprintf(temp, "%d, ", i); // Prepare a string for a given number
fputs(temp, filePointer); // Write the string to the file
这应该有效。 #happycoding :)
PS:您在声明变量 anywhere 时似乎有点遵循 C++ 标准。它是不是 纯 C.#justsaying
我正在尝试在文本文件中写入从 1 到 400 的数字。我正在使用下面的代码,运行 没有任何错误,但文件为空。
如有任何帮助,我们将不胜感激。
#include <stdio.h>
int main(void)
{
FILE *filePointer;
filePointer = fopen("file.txt","w");
int i;
for(i=0; i > 400; i++)
{
fputs("%d, ",i,filePointer);
}
fclose(filePointer);
return(0);
}
不,至少没有一些听起来很严肃的警告是不可能编译的。
您正在使用 fputs()
就好像它是 fprintf()
,向它传递一个整数而不是 FILE
指针(编译器不应允许)和一个额外的参数 (编译器不应允许)。
你的 for
循环也坏了。中间部分是一个表达式,只要循环应该 运行 就应该 为真,而不是相反。
你的意思是:
for(i = 0; i < 400; ++i)
{
fprintf(filePointer, "%d, ", i);
}
此外,您应该先检查文件是否确实打开,然后再假设它确实打开了。 I/O 可能会失败。
除了 fputs() 的用法,问题是:
for(i=0; i > 400; i++)
如果用零初始化一个变量并执行一个循环,只要它大于 400,就不会持续太久。
fputs
语法似乎有误。我认为是:
int fputs(const char *str, FILE *stream)
选择 @unwind 的 方法(如上所述),但如果您仍想使用 fputs
,则您的 fputs 行应扩展为 3 行:
char temp[4]; // String to store 3-digit number + '[=11=]'
sprintf(temp, "%d, ", i); // Prepare a string for a given number
fputs(temp, filePointer); // Write the string to the file
这应该有效。 #happycoding :)
PS:您在声明变量 anywhere 时似乎有点遵循 C++ 标准。它是不是 纯 C.#justsaying