У меня есть эта программа в C, и я пытаюсь получить строки из файла и поместить их в массив. Он отлично работает для чтения файла, но кажется, что это беспорядок с назначением в массиве.C строки чтения
int getUsers(){
char userVect[5][25];
char user[24];
int i = 0, j = 0, k;
FILE *usernames;
usernames = fopen("usernames.cfg", "r");
if (usernames == NULL){
perror("usernames - err");
return(-1);
}
while(!feof(usernames)){
fgets(user, sizeof(user), usernames);
strcpy(userVect[j], user);
j++;
}
fclose(usernames);
for(k=0; k<j; k++)
printf("Usernames are: %s\n", userVect[j]);
return 0;
}
Это, безусловно, из пользовательской переменной или из функции strcpy, но не уверен, что. Thx.
http: // stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong –
См. ['while (! feof (файл))' всегда ошибочно] (http://stackoverflow.com/questions/5431941/while -feof-file-is-always-wrong) - это то, к чему привязался Мартин, но включая заголовок делает его более ясным. –
«Кажется» испортить массив, или он делает? Если да, то как? Используйте [edit] - вопрос должен содержать всю соответствующую информацию. – usr2564301