我有一个名为Players.txt的文件,其中包含以下内容:
Del Piero|3|意大利|尤文图斯 Ronaldo|0|葡萄牙|皇家马德里
我想将每个单词读入到一个独立的数组中,例如将数组players包含players[NUM_PLAYERS][NAME_LENGTH]={ Del Piero,Ronaldo}
以及其他数组。
我知道需要使用一个叫做fgets和一些字符串函数的函数。
这是我尝试过的方法;我的问题是:是否有其他方法来解决我的问题,例如使用其他不同的程序或字符串程序?如何从该文件中获取进球数并将其存储到文件中?
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stddef.h>
#include <ctype.h>
#define NUM_PLAYERS 20
#define NAME_LENGTH 100
#define COUNTRY_NAME 20
int main (void)
{
FILE *Players;
char player_name [NUM_PLAYERS][NAME_LENGTH] = {0};
char team_name[NUM_PLAYERS][NAME_LENGTH] = {0};
char country_name[NUM_PLAYERS][COUNTRY_NAME] = {0};
char temp_buffer[NAME_LENGTH]={0};
int goals_scored[NUM_PLAYERS] = {0};
char *ptr1,*ptr2,*ptr3;
int i;
Players = fopen("Players.txt", "r");
if (Players == NULL)
{
printf("File not found.\n");
}
else
{
i=0;
while ((fgets(temp_buffer,sizeof(temp_buffer), Players) != NULL) && i < NUM_PLAYERS)
{
ptr1 = strchr(temp_buffer, '|');
strncpy(player_name[i], temp_buffer, ptr1 - temp_buffer);
printf("the name of the player is %s\n.", player_name[i]);
i ++;
}
}
fclose(Players);
return 0;
}
|
。fscanf、sscanf和scanf都共享相同(复杂)的规范。它们是一个“家族”。 - CapelliCfgets()
和sscanf()
,而不是试图使用fscanf()
。 - Jonathan Leffler