在文本文件中插入400个数字

时间:2015-04-28 09:47:00

标签: c file text fputs

我正在尝试在文本文件中写入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);
}

3 个答案:

答案 0 :(得分:11)

不,如果没有至少一些严肃的警告,就没有办法编译。

您正在使用fputs(),就好像它是fprintf()一样,传递一个整数而不是一个FILE指针(编译器不应该允许)和一个额外的参数(编译器不应该允许的。)

你的for循环也被破坏了。中间部分是一个表达式,只要循环应该,应该为真,而不是相反。

你的意思是:

for(i = 0; i < 400; ++i)
{
  fprintf(filePointer, "%d, ", i);
}

此外,您应该在假设文件确实打开之前检查该文件是否确实打开了。 I / O可能会失败。

答案 1 :(得分:4)

除了使用fputs()之外,问题是:

for(i=0; i > 400; i++)

如果将变量初始化为零并执行循环,只要它大于400,那就不会持续太久。

答案 2 :(得分:-1)

fputs语法似乎错了。我认为是:

int fputs(const char *str, FILE *stream)

选择 @ unwind&#39> 方法(如上所述),但如果您仍想使用fputs,则您的fputs行应扩展为3行:

char temp[4];                // String to store 3-digit number + '\0'
sprintf(temp, "%d, ", i);    // Prepare a string for a given number
fputs(temp, filePointer);    // Write the string to the file

这应该有效。 #happycoding:)

PS :您似乎在声明变量 where 时遵循了一点C ++标准。 C. #justsaying