2010-05-23 2 views
3

я пытался читать текстовый файл в Xcode, но это «EXC_BAD_ACCESS сообщения обнаружилось, когда я пытался построить свою программупрочитать текстовый файл в Xcode

вот мой код и я поставил inputA.txt файл в том же папка с файлом проекта мой друг сказал мне, что я должен поставить текстовый файл в папке отладки это, почему я не могу читать текстовый файл в этом коде? пожалуйста, помогите мне ... пользователь

Macbook.

int main (int argc, const char * argv[]) { 
    FILE* fp; 
    char mychar; 
    char arr[50][2] = {0, }; 
    int i = 0; 
    int j, k; 
    graphType* G_; 
    G_ = (graphType*)malloc(sizeof(graphType)); 
    Create(G_); 
    fp = fopen("inputA.txt", "r"); 
    //fp = fopen("inputB.txt", "r"); 
    //fp = fopen("inputC.txt", "r"); 

    while(1){ 
     for(j = 0 ; j < 2 ; j++){ 
      mychar = fgetc(fp); 
      if(mychar == EOF) 
       break; 
      else if(mychar == ' ') 
       continue; 
      arr[i][j] = mychar; 
     } 
     i++; 
    } 

ответ

2

По-умолчанию бинарный файл будет создан в ProjectDir/build/Mode с Mode быть Debug или Release, и будет иметь, что в качестве рабочего каталога. Если вы хотите обратиться к файлу в каталоге проекта, в этом случае вам нужно будет использовать ../../input.txt.

Место сборки сконфигурировано в разделе «Создание местоположений» на вкладке «Цели» или «Проекты». Рабочий каталог можно изменить вручную в настройках исполняемого файла («Общие», «При необходимости установите рабочий каталог:«).

Если у вас возникли сомнения, то вы всегда можете узнать, что рабочий каталог:

#include <unistd.h> 
int main() { 
    char buf[2048]; 
    getcwd(buf, sizeof(buf)); 
    printf("%s", buf); 
} 
0

Скорее всего inputA.txt не относится к тому же файлу, что и двоичный файл. Вы должны убедиться, что текстовый файл скопирован в выходной каталог вашего проекта (вручную или вручную).

Кроме того, fopen вернет NULL, если файл не может быть открыт, поэтому вы можете добавить чек для этого.

if (fp == NULL) 
{ 
    printf("Could not open file!"); 
    return 1; 
} 
0

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

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