2016-10-13 2 views
1

Прежде всего, это мой вопрос переполнения стека моего кулака, так что простите меня, если я отформатирую это неправильно.C Файл ввода/вывода на Windows

Я новичок в C, и я додумался до своей книги о файле i/o. Следующий код, который должен печатать строки в test.txt, не создает новый txt-файл или ... что-то делать.

Я запускаю Code Blocks 16.01 на Windows. Этот код предназначен для другой ОС?

#include <stdio.h> 
#include <stdlib.h> 

main() { 
    FILE *fp; 
    fp = fopen("/tmp/test.txt", "w+"); 
    fprintf(fp, "This is testing for fprintf...\n"); 
    fputs("This is testing for fputs...\n", fp); 
    fclose(fp); 
} 

Хорошо, поэтому удаление косой черты заставляет его работать. В исходном коде это «fopen («/tmp/test.txt »,« W + »); Не следует ли создать файл в папке tmp?

+4

'main()' -> 'int main (void)' ... Кстати, в чем проблема? – LPs

+0

Не создает test.txt –

+0

Где вы ожидали, что файл создан? – LPs

ответ

1

Используйте double // в Windows для навигации по каталогу.

#include <stdio.h> 
#include <stdlib.h> 

int main() { 
    FILE *fp; 
    /* 
     file path in windows should be like this= C:\\users\\r.maurya\\Desktop\\Downloads\\file.txt 
    */ 
    fp = fopen("C:\\users\\r.maurya\\Desktop\\Downloads\\file.txt", "w+"); 
    fprintf(fp, "This is testing for fprintf...\n"); 
    fputs("This is testing for fputs...\n", fp); 
    fclose(fp); 
return 0;//Optional, On success of program 
} 
+0

Обратите внимание, что экранированный обратный слэш не нужен - вы можете просто использовать стандартный '/', который интерпретируется аналогично Windows и несколько более портативен. –

+0

@PaulR Согласовано, но это не укажет путь в окнах. – roottraveller

+0

Я предлагаю вам попробовать - на самом деле он работает с пуском Windows. –

3

Попробуйте удалить переднюю черту с именем файла. Кажется, вы все делаете правильно, слэш может быть проблемой. Если нет, сообщите нам об этом.

Редактировать: Когда я написал свой комментарий, ваш fopen использовал «/test.txt», а не «/temp/test.txt», у вас есть папка «temp», созданная в каталоге, из которого запущено приложение? Если нет, попробуйте создать его. Или удалите его вообще и попробуйте создать текстовый файл в каталоге, из которого запущено приложение.

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