24小时热门版块排行榜    

查看: 1004  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

youngfi

木虫 (小有名气)

[求助] C++读入大批量文件

#include<iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>

using namespace std;
int main()
{
    int i,natom;
    char filename[10];
   
    for (i=0;i<3;i++)
    {
            sprintf(filename,"t%d.txt",i);
            cout<<filename<<endl;
            ifstream infile("filename",ios:ut);
        infile.seekg(49,ios::beg);
        infile>>natom;
        cout<<natom<<endl;
    }
       
        cout<<"Successfully!"<<endl;
        return 0;
}
为什么使用上述的文件不能正确读取相应的内容呢?在用C++如何读入大量的文件?假设文件名是t1.txt, t2.txt,t3.txt....
回复此楼
事情没有你想得那么简单但也没有你想得那么复杂。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
youngfi: 金币+8, ★★★很有帮助 2013-07-20 19:44:57
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{
        int i, natom;
        char filename[10];

        //写文件
        for (i=0; i<3; i++){
                sprintf(filename,"t%d.txt",i);
                cout << filename <<endl;
                FILE *fp=fopen(filename,"w";
                fprintf(fp,"0\n";
                fclose(fp);
        }

        //读文件
        for (i=0; i<3; i++){
                sprintf(filename,"t%d.txt",i);
                cout << filename <<endl;
                FILE *fp=fopen(filename,"r";
                fscanf(fp,"%d\n",&natom);
                printf("%d\n",natom);
                fclose(fp);
        }

        return 0;
}

我这样写,没有问题
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
5楼2013-07-20 18:47:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

木叶清风

木虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
youngfi: 金币+2, 有帮助 2013-07-19 17:01:25
第一,你的文件是否在对应目录下面,因为你使用的是相对路径。如果你使用的是vs,那么在默认情况下,你直接在ide里面调试的时候,你的txt文件需要和你的cpp文件在一起。你直接在命令行里面运行程序的时候txt文件应该和exe文件在一起;
第二,读文件使用ifstream没有错,但是你为什么要使用ios:ut呢,这是给输出流使用的。
www.cvdelver.com
2楼2013-07-19 15:37:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

youngfi

木虫 (小有名气)

引用回帖:
2楼: Originally posted by 木叶清风 at 2013-07-19 15:37:42
第一,你的文件是否在对应目录下面,因为你使用的是相对路径。如果你使用的是vs,那么在默认情况下,你直接在ide里面调试的时候,你的txt文件需要和你的cpp文件在一起。你直接在命令行里面运行程序的时候txt文件应该 ...

首先谢谢你的回复。
所需要的问件是放在同一目录下的。只是我想大量的读取很多个txt文件,所以用sprintf函数做了一个filename,但是用这个这个filename读不出来filename.txt的信息,如果我直接 ifstream infile("filename",ios:ut); infile.seekg(49,ios::beg);
        infile>>natom;
就能读出信息,我觉得问题出在这个地方。就是说,用sprintf生成的名称不能正确读取该文件的信息。但是不知道该怎么改。
事情没有你想得那么简单但也没有你想得那么复杂。
3楼2013-07-19 17:07:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

youngfi

木虫 (小有名气)

引用回帖:
2楼: Originally posted by 木叶清风 at 2013-07-19 15:37:42
第一,你的文件是否在对应目录下面,因为你使用的是相对路径。如果你使用的是vs,那么在默认情况下,你直接在ide里面调试的时候,你的txt文件需要和你的cpp文件在一起。你直接在命令行里面运行程序的时候txt文件应该 ...

首先谢谢你的回复。
所需要的问件是放在同一目录下的。只是我想大量的读取很多个txt文件,所以用sprintf函数做了一个filename,但是用这个这个filename读不出来filename.txt的信息,如果我直接 ifstream infile("filename",ios:ut); infile.seekg(49,ios::beg);
        infile>>natom;
就能读出信息,我觉得问题出在这个地方。就是说,用sprintf生成的名称不能正确读取该文件的信息。但是不知道该怎么改。
事情没有你想得那么简单但也没有你想得那么复杂。
4楼2013-07-19 17:07:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 G6APbkg8SA6w 2026-08-29 3/150 2026-08-30 02:29 by ZPa0EcMwuECS
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 gy1nBQXYQJqL 2026-08-29 6/300 2026-08-30 01:58 by ZPa0EcMwuECS
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-30 01:58 by ZPa0EcMwuECS
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 gy1nBQXYQJqL 2026-08-29 3/150 2026-08-30 01:58 by ZPa0EcMwuECS
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-30 01:49 by ZPa0EcMwuECS
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 gy1nBQXYQJqL 2026-08-29 6/300 2026-08-30 01:36 by ZPa0EcMwuECS
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-30 01:34 by ZPa0EcMwuECS
[论文投稿] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 gy1nBQXYQJqL 2026-08-29 6/300 2026-08-30 01:25 by ZPa0EcMwuECS
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +6 ASdOkHsho7FD 2026-08-28 9/450 2026-08-30 01:04 by ZPa0EcMwuECS
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 ASdOkHsho7FD 2026-08-28 5/250 2026-08-30 01:03 by ZPa0EcMwuECS
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 ASdOkHsho7FD 2026-08-28 7/350 2026-08-30 00:52 by ZPa0EcMwuECS
[基金申请] 为什么到现在没收到通知? +4 tannykie 2026-08-29 4/200 2026-08-29 17:14 by lmz0216
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
信息提示
请填处理意见