2014-03-17 2 views
2
#include <stdio.h> 

int main() 
{ 
    FILE *fp; 
    int i; 
    fp=fopen("tyxaioi.txt","w"); 
    if(fp==NULL) 
     printf("Den vre8ike\n"); 
    for(i=1;i<=25;i++) 
     fprintf(fp,"%d\n",i); 
    fclose(fp); 
    return 0; 
} 

Мне нужно открыть файл и записать в него некоторые цифры и строку. Чтобы посмотреть, как fopen, fprintf, fscanf и т. Д., Я написал эту небольшую программу. У меня Mac OS, и я пишу в Xcode. Я запускал эту программу, и ничего не происходит. Я думаю, что он не создает файл. Может ли кто-нибудь помочь мне понять, есть ли у меня ошибка в моей программе?fprintf в MacOS, а не файл открытия

+4

Используйте отладчик, чтобы посмотреть, что происходит. – zmbq

+0

У меня нет и OSx терминал вверх, но он работал для меня на debian, с gcc 4.7. У вас есть права на запись в текущем каталоге? – problemPotato

+3

Где вы ищете файл? Xcode запускает программы в странном подкаталоге где-то, что может быть не так, как вы ожидали. –

ответ

3

Файл создан, но вы не знаете, где он находится.

Поскольку имя файла не предваряется пути каталога, который вы создаете файл в текущей рабочей директории, то есть (для выполнения программы в Xcode) каталог, где исполняемый файл создается во время сборки.

Чтобы найти текстовый файл с именем tyxaioi.txt, сначала активируйте окно проекта Xcode.

На левой боковой панели откройте папку Продукты, вы должны увидеть значок, представляющий исполняемый файл.

правой кнопкой мыши на этот значок и выберите «Показать в Finder»

В том же каталоге, вы увидите текстовый файл.

Если это поведение не то, что вы хотите, вы можете указать абсолютный путь, например

fp=fopen("/Users/xxxx/Desktop/tyxaioi.txt","w"); 

заменителя xxxx с именем вашей домашней папки; файл будет создан на рабочем столе.


Btw: если вы не можете открыть файл, который должен вывести сообщение с смыслом и выходом (или обработать ошибку):

if(fp==NULL) { 
    fprintf(stderr, "Can't open the file for writing.\n"); 
    return 1; // <==== 
} 
+3

Код OP создает файл в * текущем рабочем каталоге *, а не в '/'. –

+0

@CarlNorum да, моя ошибка! Я исправил ответ – Paolo

+0

Я рассмотрел этот ответ из-за строки, которая гласит: Щелкните этот значок правой кнопкой мыши и выберите «Показать в Finder». Мой выходной файл был скрыт в каталоге Library/Developer/Xcode/DerivedData/[Project name] - [длинная строчная строка]/Build/Products/Debug /, не раскрывается при поиске в Finder и, наконец, раскрывается предложением этого ответа. – mathematrucker

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