【问题标题】:C .Scan specific part of line from a file and assign it to some variableC .扫描文件中行的特定部分并将其分配给某个变量
【发布时间】:2016-06-04 13:53:21
【问题描述】:

如果我在文件中有这些数据:

美居 99842 1 18 2001 5 30 1991 16 12.5

马自达 123961 2 20 1993 6 15 1993 19.3 16.7

我对每行的第三个数字感兴趣,我想将它存储在一个数组中。

我以前的做法是用一些变量来存储行中的所有值,然后我选择我感兴趣的那个。 例如:

while(fscanf(file,"%s %d %d %d %d %d %d %f %f",a,&b,&array[i],&d,&e,&r,&t,&g,&h)!=EOF)
     {i++;}

array[i] 是存储我感兴趣的值,其他变量只是为了匹配格式,我不需要。

有没有更好的方法?

【问题讨论】:

    标签: c file scanf


    【解决方案1】:

    您可以使用*fscanf() 读取值并将其丢弃。

    while(fscanf(file,"%*s %*d %d %*d %*d %*d %*d %*f %*f",&array[i])!=EOF)
         {i++;}
    

    【讨论】:

    • 如何避免空格? ,我的意思是,如果我有: Mercure Mazda 99842 1 18 并且我想将“Mercure Mazda”读入一个字符数组。如何使用 scanf 和 %s 做到这一点?
    • 这应该是一项非常艰巨的任务,所以您应该使用另一种方式,例如使用%c,逐个读取字符,并自己解析输入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    相关资源
    最近更新 更多