在文本文件中插入 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