【发布时间】:2016-11-17 16:59:34
【问题描述】:
所以我有一个 .txt 文件,如下所示:
** Paris ** Flight,5 days,visiting various monuments. | 2999.99 |
** Amsterdam ** By bus,7 days, local art gallery. | 999.99 |
** London ** Flight,3 days,lots of free time. | 1499.99 |
我想将信息存储到 3 个变量中,城市、描述和价格,但我根本无法保存行。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char city[256],desciption[256];
float temp;
if(fp=fopen("Ponuda.txt","rt")==NULL){
printf("ERROR\n");
exit(1);
}
while(fscanf(fp,"** %s ** %s | %f |",city,description,&temp)==3){
printf("** %s ** %s |%f|\n",city,description,temp);
}
return 0;
【问题讨论】:
-
%s只读取 1 个单词。你不能用它来阅读整个描述。 -
您还会遇到超过 1 个字的城市的问题,例如
New York。 -
我明白了,看来我当时的方法是错误的。
-
使用
fgets后跟strtok用分隔符字符串"*|"分割每一行。然后用strdup复制两个文本字符串,sscanf从第三个token中提取票价。 -
c 如何看到单词的结尾?难道我不能以某种方式使整个描述是一个词,并且阅读停止在字符'*'处吗?