2013-09-23 20 views
-3

Я новичок в C, и я удивлен, что нет прямой функции для достижения того, чего я хочу.fPrintf целое число

Я выполняю программу и вам нужно написать целочисленное значение в файл. У меня есть фрагмент кода, который помогает мне писать в файл:

FILE *in_file = fopen("test.txt", "w"); 
    fprintf(in_file,"Test"); 
    // all done! 
    fclose(in_file); 

Этот код успешно в состоянии записать строку в файл. Теперь, когда я пытаюсь написать целое значение в этот файл не нравится, потому что я думаю, Fprintf любит писать только строки в файлы:

поэтому следующий код не работает:

int argc = 10; 
FILE *in_file = fopen("test.txt", "w"); 
    fprintf(in_file,"entry value: %d",argc); 
    // all done! 
    fclose(in_file); 

он выдает следующую ошибку:

error: too few arguments to function ‘int printf(const char*, ...)’
printf();

Теперь, я пытался найти, как напечатать целое число в файл в C, но не нашел никаких straightfoward ответов. Поэтому у меня осталось два варианта: либо я пытаюсь найти способ преобразования этого целого числа в строку, либо значение Fprintf записывает целочисленное значение в файл.

Я не уверен, какой из них является лучшим вариантом. Какие-либо предложения?

+0

... глупая опечатка ... – phonetagger

+0

ли Вы утверждаете, что отредактированный код 'fprintf (in_file ", значение входа:% d", argc); 'все еще дает вам сообщение об ошибке? – jxh

+0

Это то, что происходит. Я могу успешно печатать строки. 'int something = 5; \t FILE * in_file = fopen ("test.txt", "w"); \t fprintf (in_file, "% d", что-то); // все сделано! \t fclose (in_file); 'Это тоже не работает – TeaLeave

ответ

2

в этой строке fprintf(in_file,"entry value: %d,argc"); вы должны изменить его на fprintf(in_file,"entry value: %d" , argc);

+0

На самом деле я извиняюсь. Это вы уже предложили (in_file, «начальное значение:% d», argc). Мне очень жаль путаницы. – TeaLeave

1

Неверная ошибка, argc должен быть помещен за пределы строкового литерала во всех методах *printf.

fprintf(in_file,"entry value: %d",argc); 

int fprintf (FILE * stream, const char * format, ...);

... (additional arguments)

Depending on the format string, the function may expect a sequence of additional arguments, each containing a value to be used to replace a format specifier in the format string (or a pointer to a storage location, for n). There should be at least as many of these arguments as the number of values specified in the format specifiers. Additional arguments are ignored by the function.

+0

На самом деле я извиняюсь. Это вы уже предложили (in_file, «начальное значение:% d», argc). Мне очень жаль путаницы. – TeaLeave

1

Попробуйте

fprintf(in_file,"entry value: %d", argc); 
+0

На самом деле я извиняюсь. Это вы уже предложили (in_file, «начальное значение:% d», argc). Мне очень жаль путаницы. – TeaLeave

Смежные вопросы