Я читаю строки из файла, и для части я решил прочитать в char
char
. Вот что я получил:
char str[500]; // it has to be this size, I promise
char c; // for reading each char
c = fgetc(fp);
while (c != '\t') // this char ends the string I'm trying to read
{
strncat(str, &c, 1); // strcat() didn't work
c = fgetc(fp); // read next char
}
Это отлично работает. Тем не менее, я должен прочитать еще много строк. Я попытался сбросить str
, чтобы я мог снова использовать strncat () таким же образом, но получаю ошибку «Abort trap: 6». Вот некоторые вещи, которые я пробовал (отдельно):
strcpy(str, ""); and strcpy(str, " "); // just assigns first index to '\0'
strcpy(str, 0); // seg fault
strcpy(str, "\0"); and strcpy(str, '\0'); // same as first option
memset(str, 0, strlen(str)); // all zeroes, but Abort trap: 6
memset(str, 0, sizeof(str)); // same thing
// and (in desperation)
strcpy(str, &c + '\0'); // this is after doing strcpy(str, "");
// get an error
Я бы не хотел перебирать str, назначая каждому значение null, потому что у меня есть ожидаемая строка, которая почти заполнит массив. Спасибо!