zoukankan      html  css  js  c++  java
  • fscanf从文本文件读取数据

    整理自:http://www.programfan.com/club/showtxt.asp?id=252333

    大家好!我在用fscanf函数从文本文件中读取数据的时候,我想只读取一行中的前面几个数,后面的全部字符都不读取,然后接着读下一行。比如我的数据文件如下

    23  456  #number
    78 981  #number

    我用

    fscanf("%d%d\n", &a,&b);
    fscanf("%d%d\n", &c, &d);

    目的是想令a = 23, b = 456, c = 78, d = 981, 而读取的时候,想忽略每一行后面的“#number”字符串。但是我失败了。请问我该怎么样写格式控制?不想多定义一个字符串变量来读取这个字符串。谢谢!!

    ----------------------------------------------------------------------

    引用
    fscanf("%d%d%*s", &a,&b);
    fscanf("%d%d%*s", &c, &d);



    兄弟,这个方法我早前也试过了的,存在多个以空格隔开的字符串时不管用。

    --------------------------------------------------------------------

    引用
    你没说有多个字符串呀

    fscanf("%d%d%*[^\n]%*c", &a,&b);
    fscanf("%d%d%*[^\n]%*c", &c, &d);



    谢谢!经过测试,上述方法是很好的。同时发现,格式串中的%*c可以换成\n。此外,如果要从下一行开始读入的是数值变量,而不是字符变量,那么省略%*c或\n也完全没有问题。但如果下一个要读入的是字符变量,且要求从下一行开始的字符读,那么%*c或\n就不可以省略了。
    ----------------------------------------------------------------------

     

  • 相关阅读:
    nio的学习
    并发编程学习(二)
    并发编程学习(一)
    linux基础知识-常用命令
    linux基础知识-目录结构
    springcloud的config
    zuul学习
    hystrix学习
    feign学习
    ribbon学习
  • 原文地址:https://www.cnblogs.com/fangyu/p/1998605.html
Copyright © 2011-2022 走看看