#include <stdio.h>
#include <string.h>
struct candidate
{
char candidateName[20];
int votes;
};
Initialize()
{
char firstname[10];
char lastname[10];
FILE* ifp;
int i;
struct candidate electionCandidates[7];
ifp = fopen("elections.txt", "r");
for (i = 0; i<7; i++)
{
strcpy(electionCandidates[i].candidateName, "aaaaa");
electionCandidates[i].votes = 0;
}
for (i=0; i<7; i++)
{
memset(&firstname[0], 0, sizeof(firstname));
memset(&lastname[0], 0, sizeof(firstname));
fscanf(ifp, "%s %s", &firstname, &lastname);
strcat (firstname, " ");
strcat (firstname, lastname);
strcpy (electionCandidates[i].candidateName, firstname);
printf("%s", electionCandidates[i].candidateName);
}
}
int main()
{
Initialize();
return(0);
}
Приведенный выше код должен читать имена и фамилии из файла и добавлять их в часть имени кандидатаName. Когда я запускаю эту программу, она присваивает и печатает имя и фамилию begginning, но затем сразу же падает.Сбой программы при чтении из файла
Файл в формате
first last
first last
first last
и т.д.
Я чувствую, что это может иметь что-то делать с этим не собирается прочитать следующую строку, но я не знаю, как это сделать так. Любая помощь будет принята с благодарностью.
'firstname' выделяет достаточно места для 9 символов плюс завершающий символ NULL. Возможно ли, что 'firstname' + space +' lastname' длиннее этого? –
Кажется, что у многих людей такая же домашняя работа сегодня: http://stackoverflow.com/questions/25691729/how-do-i-assign-values-from-text-file-to-a-structure-of-arrays- в-C –