24小时热门版块排行榜    

查看: 1017  |  回复: 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的回帖

木叶清风

木虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +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的回帖

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的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

CODE:
#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;
}

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

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

c++ 版
CODE:
#include<iostream>
#include<fstream>
#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;
                ofstream myfile(filename);
                myfile << 0 <<endl;
                myfile.close();
        }

        //读文件
        for (i=0; i<3; i++){
                sprintf(filename,"t%d.txt",i);
                cout << filename <<endl;
                ifstream myfile(filename);
                myfile >> natom;
                cout << natom <<endl;
                myfile.close();
        }

        return 0;
}

我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
7楼2013-07-20 19:03:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 youngfi 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +6 ASdOkHsho7FD 2026-08-28 8/400 2026-08-30 11:32 by l0VvVHGBGRLv
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 gy1nBQXYQJqL 2026-08-29 5/250 2026-08-30 06:55 by ZPa0EcMwuECS
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 gy1nBQXYQJqL 2026-08-29 7/350 2026-08-30 06:46 by ZPa0EcMwuECS
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 gy1nBQXYQJqL 2026-08-29 7/350 2026-08-30 06:35 by ZPa0EcMwuECS
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 ASdOkHsho7FD 2026-08-28 7/350 2026-08-30 06:10 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一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-30 01:45 by ZPa0EcMwuECS
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 gy1nBQXYQJqL 2026-08-29 7/350 2026-08-30 01:36 by ZPa0EcMwuECS
[论文投稿] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 gy1nBQXYQJqL 2026-08-29 6/300 2026-08-30 01:25 by ZPa0EcMwuECS
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +15 晴天加油 2026-08-26 16/800 2026-08-29 18:28 by symmetry
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +9 苏东坡二世 2026-08-23 9/450 2026-08-29 14:41 by hustersqt
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 基金不中,共勉 +11 eulota 2026-08-26 11/550 2026-08-28 14:22 by 火星超人xi
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
信息提示
请填处理意见