몇 백개의 정수가있는 파일을 읽으려고합니다. 일부는 음수이고, 어떤 것은 음수이고 배열에 저장하려고합니다. 그들은 strtok을 사용하여 문자열로 읽어야합니다. 세분화 오류가 계속 발생하며 이유가 확실하지 않습니다. 카운트는 얼마나 많은 총 정수가 파일에 있는지 파악하는 것입니다.파일에서 문자열을 읽어서 C로 정수로 배열에 저장
/*Input file looks like this:
718321747 -1828022042
-1665405912 -175307986
-53757018 -1551069786 525902369
-1945908378 853648883
*/
int main(int argc, char* argv[])
{
char buffer[50];
char* token;
int count = 0;
int num = 0;
int arr[MAX_SIZE];
if (argc != 2)
{
printf("Invalid number of arguments\n");
return 0;
}
FILE* fptr = fopen(argv[1], "r");
//open file
if (fptr == NULL)
{
printf("Unable to open file\n");
return 0;
}
while(fgets(buffer, 50, fptr))
//to get the file line by line
{
token = strtok(buffer, "\n\t ");
//find first token
num = atoi(token);
//convert it to an int
arr[count] = num;
//store in array
count++;
while(token != NULL)
//get rest of tokens and convert to int
{
token = strtok(buffer, "\n\t ");
num = atoi(token);
arr[count] = num;
count++;
}
}
return 0;
}
'strtok()'에 대한 두 번째 호출이 첫 번째 매개 변수로 NULL을 갖지 않아야합니까? – John3136
나를보기 드문 드문 _after_ 코드 라인. – chux