注册 登录
编程论坛 C++教室

c++文件读取的问题

宋立鹏 发布于 2013-03-17 19:07, 538 次点击
读取txt文件,如何每隔三个数据读取一次,例如,1,2,3,4,5,6,7,8.....只读取4,8.....
3 回复
#2
rjsp2013-03-18 08:32
每隔三个数据读取一次,例如,1,2,3,4,5,6,7,8.....只读取4,8.
------ 其实是“每隔四个”吧,不能你的中文了
scanf可以 "%*d,%*d,%*d,%d",这个太简单了,不写代码了
cin可以调用ignore三次以扔掉前三个逗号,事例代码如下
程序代码:
#include <iostream>
#include <sstream>
#include <limits>
using namespace std;

int main()
{
    istringstream is( "1,2,3,4,5,6,7,8" );
    for( int v; is.ignore(numeric_limits<streamsize>::max(),',')
             && is.ignore(numeric_limits<streamsize>::max(),',')
             && is.ignore(numeric_limits<streamsize>::max(),',')
             && is>>v; is.ignore(1) )
    {
        cout << v << endl;
    }

    return 0;
}

#3
宋立鹏2013-03-18 11:11
回复 2楼 rjsp
你这个代码我试了试,什么都没有输出呀
#4
rjsp2013-03-18 11:22
以下是引用宋立鹏在2013-3-18 11:11:04的发言:

你这个代码我试了试,什么都没有输出呀
那真有意思,竟然能编译通过了,却无输出,这种bug实在太蹊跷。是什么编译器呀,让我见识一下?
你可以先换个好点儿的编译器测试一下,比如 MinGW4.7.2 或 vc++2008,这两个是当今的主流编译器,我试过都行,你可以试试。
1