2015-05-22 2 views
0
for(c='A'; c<='Z'; ++c) 
{ 
    p = fopen("D:\\DriveName.txt", "w+"); 
    fseek(fp, filepointer , SEEK_SET); 
    fputs(buffer,fp); 
    fclose(fp); 
    ++filepointer; 
} 

Всякий раз, когда один цикл пропускает дальнейшее предыдущее письмо цикла, стирается, но указатель переходит вперед. помочь мне, почему его происходитФайл ввода/вывода внутри файла, который создается

+0

вы снова открываете файл внутри цикла. откройте файл перед входом в цикл или откройте файл в режиме добавления. – 911

+0

Я хочу добавить письмо evrytime loops идет мимо .... по-другому, как это возможно – UKNOWN

+1

@VivekSingh 911 только что сказал вам – Eregrith

ответ

2

ли это вместо:

p = fopen("D:\\DriveName.txt", "w"); 
for(c='A'; c<='Z'; ++c) 
{ 
    fputs(buffer,fp); 
} 
fclose(fp); 
0

Я думаю, что вы перестарались. fputs() предназначен для записи строк C и вы хотите написать персонаж за раз. fprintf() может быть лучшим выбором. Попробуйте следующее:

FILE *fp = fopen("D:\\DriveName.txt", "w"); 
char c; 

for (c='A'; c<='Z'; ++c) 
{ 
    fprintf(fp, "%c",c); 
} 

fclose(fp); 
+0

Ну, мы не знаем, хочет ли это то, что OP хочет сделать, может быть, 'buffer' содержит что-то другое. Кроме того, я думаю, что 'fputc' было бы лучше для печати одного символа в' FILE * '. – szczurcio

+0

Кроме того, 'w +' следует использовать вместо 'w', так как ваш текущий код будет перезаписывать файл каждый раз. –

+0

Правда, непонятно, каково было первоначальное намерение. –

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