这是我的代码。这将打开一个文本文件,并根据用户输入打印一行。我现在想要在所选分隔符(例如逗号)的外观上分隔所述行,以便我可以获得单独的信息(例如,重量,高度,眼睛颜色,名称,年龄等)。我将如何做到这一点?(编辑即时尝试使用文本输入来确定打印出的行和nada任何帮助?)
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
const char delim[2] = ",";
char *token;
int j =0;
char hh[3];
FILE *ptr_file;
char buf[1000];
ptr_file =fopen("input.txt","r");
if (!ptr_file)
return 1;
char *pt[] = {
"H","He","Li","Be","B","C","N","O","F","Ne","Na"
};
printf("what element do you want\n");
scanf("%s", &hh);
for(j=0; j<= 3; j++)
{
if(hh == pt[j])
{
fgets(buf,1000, ptr_file);
token = strtok(buf, delim);
while( token != NULL )
{
printf( "%s\n", token );
token = strtok(NULL, delim);
}
break;
}else
{
fgets(buf,1000, ptr_file);
continue;
}
}
fclose(ptr_file);
return 0;
}
答案 0 :(得分:1)
如果您有句子:“体重,身高,眼睛颜色,姓名,年龄”,您可以使用
对字符串进行标记并用逗号(“,”)分隔。char * strtok(char * str,const char * delim)函数如下。
char buf[1000] = "Weight,Height,Eye color,Name,Age";
const char delim[2] = ",";
char *token;
//This retrieves the first token
token = strtok(buf, delim);
while( token != NULL )
{
printf( "%s\n", token );
token = strtok(NULL, delim);
}
输出:
重量
身高
眼睛颜色
名称
年龄