Как записать в файл из char [] []? - PullRequest
0 голосов
/ 31 августа 2011

Я собираю данные в массив char [] [], затем позволяю пользователю выбрать, какую из этих строк записать в файл.Так, например, я делаю

char arr[3][3]; // assume there are three different two-char long strings in there
FILE* f = fopen("file", "w");
fputs(arr[1], f);
fclose(f);

Теперь проблема в том, что при вызове fputs() я получаю сообщение об ошибке и не знаю почему.

Есть идеи?

Ответы [ 5 ]

2 голосов
/ 31 августа 2011

Убедитесь, что указатель файла, возвращаемый fopen, не равен NULL;если предположить, что arr содержит допустимые строки с нулем в конце, это единственное, о чем я могу думать, что это приведет к тому, что fputs прекратится.

1 голос
/ 31 августа 2011
  1. fputs ожидает \0 -определенную строку. Убедитесь, что вы добавили 0 в конец строки, которую вы там указали. В качестве альтернативы используйте fwrite.

  2. проверьте, что f != NULL после fopen

0 голосов
/ 31 августа 2011

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

0 голосов
/ 31 августа 2011

Массив char, на который указывает arr[1], вероятно, не заканчивается нулем. Вы должны объявить arr как char arr[3][4]; и заполнить последний столбец '\0' (нулевыми) символами.

0 голосов
/ 31 августа 2011

На что указывает arr? Я думаю, проблема в том, что arr не инициализируется.

...