我有以下代码,我正在从文件中读取行并希望使用字符指针数组保存它们。当我在文件读取循环中使用一个缓冲区时,我在字符数组中的所有指针最终都指向从文件读取的最后一行,因为最后一行是循环终止时当前保存在缓冲区中的那一行。如何存储它们,以便字符数组中的每个指针按照读取顺序指向不同的字符数组。
int num_clients_to_start = 0;
char *token1, *token2, *str;
FILE* fp;
char bufr[256];
char testchar[255] = {};
char *start_client[10];
while(fgets(bufr, 256, fp) != NULL){
if(bufr[0] == '#'|| bufr[0] == '\n')
continue;
str = bufr;
token2 = ""; /* initializing an empty token 2 */
for(str = bufr; ;str = NULL){
token1 = strtok(str, " ");
if(strcmp(token2, "client_name") == 0){
sprintf(testchar,"%s", token1);
start_client[num_clients_to_start] = testchar;
num_clients_to_start++;
}
token2 = token1;
if(str == NULL){
break;
}
}//end of for loop
}//end of while loop
printf("client1 = %s client2 = %s client3 = %s",start_client[0],start_client[1],start_client[2]);
我的输入文件如下:
client_name abc
client_name def
client_name xyz
并打印语句输出:
client1 = xyz
client2 = xyz
client3 = xyz