从文件中读取并在 c 中使用 strtok()
read from file and use strtok() in c
你能帮帮我吗?我正在尝试读取 .txt 文件中的字符串 123;342;543;36.6;calm
。然后使用函数 atoi()
来比较我的值。但首先我想使用 strtok()。我不明白这有什么问题,因为我只工作 printf("%s",str);
但我不能正确使用 strtok()
这就是为什么我没有得到我的结果。
代码:
void printInfo()
{
int i;
FILE *out;
char str[250];
char sp[10]=";";
char *istr;
istr=strtok(str,sp);
if ((out =fopen("test.txt","r"))==NULL)
printf("Error open, file\n");
else
{
fgets(str,250,out);
printf("%s",str);
while (istr != NULL)
{
printf("%s",istr);
istr=strtok(NULL,sp);
}
}
fclose(out);
}
istr=strtok(str,sp);
读取数据后调用
您的第一个 strtok()
电话打错了地方。它必须在字符串 str
收到有效内容之后,即在 fgets()
.
之后
使用 sscanf()
。
这会更容易、更清洁、更安全
你能帮帮我吗?我正在尝试读取 .txt 文件中的字符串 123;342;543;36.6;calm
。然后使用函数 atoi()
来比较我的值。但首先我想使用 strtok()。我不明白这有什么问题,因为我只工作 printf("%s",str);
但我不能正确使用 strtok()
这就是为什么我没有得到我的结果。
代码:
void printInfo()
{
int i;
FILE *out;
char str[250];
char sp[10]=";";
char *istr;
istr=strtok(str,sp);
if ((out =fopen("test.txt","r"))==NULL)
printf("Error open, file\n");
else
{
fgets(str,250,out);
printf("%s",str);
while (istr != NULL)
{
printf("%s",istr);
istr=strtok(NULL,sp);
}
}
fclose(out);
}
istr=strtok(str,sp);
读取数据后调用
您的第一个 strtok()
电话打错了地方。它必须在字符串 str
收到有效内容之后,即在 fgets()
.
使用 sscanf()
。