Вставка 400 номеров в текстовый файл
Я пытаюсь записать цифры от 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 ответа
fputs
синтаксис кажется неправильным. Я думаю, что это:
int fputs(const char *str, FILE *stream)
Выберите подход @unwind (как упомянуто выше), но если вы все еще хотите использовать 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: Вы, кажется, следуете немного стандарту C++ в объявлении переменной где-либо. Это не чистый C.
Нет, по крайней мере, это не скомпилировано без серьезных предупреждений.
Вы используете fputs()
как будто это было fprintf()
, передавая это целое число вместо FILE
указатель (который компилятор не должен разрешать) и дополнительный аргумент (который компилятор не должен допускать).
Также ваш for
петля разорвана. Средняя часть - это выражение, которое должно быть истинным до тех пор, пока должен выполняться цикл, а не наоборот.
Вы имели в виду:
for(i = 0; i < 400; ++i)
{
fprintf(filePointer, "%d, ", i);
}
Кроме того, вы должны убедиться, что файл действительно открылся, прежде чем предположить, что он открылся. I/O может потерпеть неудачу.
Помимо использования fputs(), проблема заключается в следующем:
for(i=0; i > 400; i++)
Если вы инициализируете переменную с нулем и выполняете цикл, пока он больше 400, это не будет длиться слишком долго.