怎么用C++在文本中读取一行或多行指定的数据?

作者&投稿:居泻 (若有异议请与网页底部的电邮联系)
C++怎么在txt文件读取中一行一行的读内容~


//在工程下面建立一个文件 xiaojiba.txt
#include
#include
#include

using namespace std;

int main()
{

cout<<"input the filename:"<<endl;
string filename;
cin>>filename;
ifstream infile(filename.c_str());
string temp;
while(getline(infile,temp))
{
cout<<temp<<endl;
}
cout << "Hello world!" << endl;
return 0;
}

scanf();函数自身是带返回值的,如果有读入的话会返回true.

你既然要文本多行读入可以这样写:
#include
freopen("unname.txt","r",stdin); //input
freopen("unname_out.txt","w",stdout); //output

然后按一般的读入就可以了.

EOF一般用来判断文本结束, 不过C里自带检测的函数,可以这样使用:
while(!feof(stdin)){
...
} //其中stdin是标准文件输入指针, 见上.

使用fgets函数即可。

1、fgets函数:
原型:char * fgets(char * buf, int bufsize, FILE * stream);
功能:从文件结构体指针stream中读取数据,每次读取一行;
说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为\0)。如果该行不足bufsize个字符,则读完该行就结束,如果该行超过bufsize-1个字符,则fgets只返回一个不完整的行,buf缓冲区以\0字符结束,下一次fgets调用会继续读取该行剩余的字符;
头文件:stdio.h;
返回值:若读入成功,返回与参数buf相同的字符指针,若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
2、例程:

#include<stdio.h>
int a;
char b,c[100];
int main(){
    FILE * fp1 = fopen("input.txt", "r");//打开输入文件
    FILE * fp2 = fopen("output.txt", "w");//打开输出文件
    if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
        puts("不能打开文件!");
        return 0;
    }
    fscanf(fp1,"%d",&a);//从输入文件读取一个整数
    b=fgetc(fp1);//从输入文件读取一个字符
    fgets(c,100,fp1);//从输入文件读取一行字符串
    
    printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
    
    fputs(c,fp2);//向输出文件写入一行字符串
    fputc(b,fp2);//向输出文件写入一个字符
    fprintf(fp2,"%d",a);//向输出文件写入一个整数
    
    fclose(fp1);//关闭输入文件
    fclose(fp2);//关闭输出文件,相当于保存
    return 0;
}


用getline函数,从文件流中读取每一个,然后和"语文成绩"这个字符串比较,如果匹配,就加入vector中,然后全部读取完以后,再排序。这样说你会懂吗?不懂我帮你写。

主要考察读写文件以及字符串类中的一些成员函数的应用。#include <iostream>#include <map>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;int main()
{
string str[100];
int i=0;
memset(str,0,100);
while (true)
{
ifstream iFile("1.txt");
if (!iFile)
{
throw runtime_error("file open failture!");
}
string strSearch;

cout<<"please enter the searchItem:";
cin>>strSearch;
string strLine;
while (getline(iFile,strLine))
{
if (strLine.find(strSearch.c_str())!=-1)
{
str[i]=strLine;
i++;
}
}

int j=0;
string strTemp=str[0];
for (j=0;j<i;j++)
{
int k=j;
for (int p=j;p<i;p++)
{
if (str[k]<str[p])
{
k=p;
}
}
if (k!=j)
{
strTemp=str[j];
str[j]=str[k];
str[k]=strTemp;
}
}
for (j=0;j<i;j++)
{
cout<<str[j]<<endl;
}
cout<<"continue search? <y/n>:";
char c;
cin>>c;
if (c=='n')
{
break;
}
iFile.close();
}

return 0;
}你将信息写在项目中一个名为1.txt的文档中。刚敲完。如果需要源代码的话,留下邮箱。


c是什么梗
c是一个网络梗。其源于社交媒体中的梗文化,特定情境下的语境用词或者短语由于网友的传播变得热门和流行。在这种语境下,“c”是一个表情符号,可以代表微笑或嘲笑等情绪表达。它在社交媒体和聊天应用中的使用非常广泛。有时人们会在文本中使用“c”来传达一种轻松幽默的氛围或是掩饰直接表达的尴尬或不...

用C语言如何将结果输出到一个文本文件中保存
} \/\/输入5名员工的工号,并保存到文件中 for(i=0;i<5;i++){ scanf("%d%f",&No,&salary);fprintf(fp,"%d,%.2f\\n",No,salary);} fclose(fp);return0;}

在文本档中输入C语言怎么运行
把文本文档的扩展名改成c,就是txt改成c,用VC6打开这个文件,编译就可以了

怎么用C语言向一个TXT文件中录入一个换行符
在文本模式下向文本中写入换行可以直接只用'\\n',在Window下会自动转换为'\\r''\\n';在binary模式下写入换行,Window下由于是使用\\r\\n来标识结尾,所以需要写入'\\r''\\n'两个字符,Linux只需要写入'\\n' 。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file...

怎么用C++在文本中读取一行或多行指定的数据?
使用fgets函数即可。1、fgets函数:原型:char * fgets(char * buf, int bufsize, FILE * stream);功能:从文件结构体指针stream中读取数据,每次读取一行;说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为\\0)。如果该行不足bufsize个字符,则读完该...

c语言操作文本的基本使用方法
c语言操作文本的基本使用方法1 起始点表示符号数字表示 文件首SEEK_SET0 当前位置SEEK_CUR1 文件末尾SEEK_END2 例如:fseek(fp,100L,0);其意义是把位置指针移到离文件首100个字节处。还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。c语言中常用的...

请问怎样用C写代码把文本中由空格隔开的数据换成逗号隔开,并在每个数据...
int main(){ FILE *fp_test,*fp_test_new;int data,i=0;\/\/以只读方式 打开要读取的文件 if((fp_test=fopen("test.txt","r"))==NULL){ \/\/若打开文件出错,则输出提示信息,并退出 printf("\\n open test.txt error! \\n");exit(1);} \/\/以只写方式 打开存储转换数据文件;若不...

如何用C编写 把文本中的网址提取出来!
这个事情用Java、C#用正则表达式处理非常轻松 如果用C做也可以,要做字符串匹配呀,找到src=,然后把 后面一对双引号中的东西去取出来。都是字符串和字符指针比较基本的操作。

如何用C语言在文件中查找并替换指定字符串?清高手指点!
编译环境vc2005\/dev-c++ include<stdio.h> include<stdlib.h> include<string.h> define N 10000 \/* 设定文件最大字符个数不超过10000,可更改 *\/ int main(){ int i=0,j,k=0,m=0,pos=0,max,len1,len2;char s[N],t[N],a[200],s1[200],s2[200];FILE *fp;printf("Please ...

c语言把数据保存在TXT文本中
c语言,把数据存在txt文件里,需要使用fopen函数以写文件的方式打开文件。然后可以使用fprintf,fputc,fputs,fwrite等函数,把相应类型的数据写入文件。最后,写入完成后使用fclose函数关闭文件。下面的C语言程序源程序展示了合并A.txt和B.txt两个TXT文件的内容存储到到新建的一个TXT文件,C.txt。include <...

寒亭区17037818002: C++中如何读入多行数据? -
枕亨洛芙: scanf();函数自身是带返回值的,如果有读入的话会返回true.你既然要文本多行读入可以这样写:#include freopen("unname.txt","r",stdin); //input freopen("unname_out.txt","w",stdout); //output 然后按一般的读入就可以了.EOF一般用来判断文本结束, 不过C里自带检测的函数,可以这样使用:while(!feof(stdin)){ ...} //其中stdin是标准文件输入指针, 见上.

寒亭区17037818002: c++如何读取txt的数据(一行一行的读,从第一行读到最后一行)要详细代码 -
枕亨洛芙: C++读取txt文本数据并一行一行的读方法如下: 1、使用C++提供输入输出流的getline函数可以实现整行读取;完整代码如下: #include<iostream> #include<fstream> using namespace std;int main(){ // 定义输入文件流类对象infileifstream ...

寒亭区17037818002: C++中怎么从文件中直接读出某一行或写某一行
枕亨洛芙: 读出方法1:以ios::in即文本流方式打开,用getline就可以顺次读到第5行,注意中间使用的缓冲区要大一些,防止到'\n'时溢出 读出方法2:以ios::binary|ios::in即二进制流输入方式打开,依次判断是否'\n',同样也可以读出指定的第几行 但是,如果想输出的话,即使用fstream方式打开,如果写入的第5行数据与原始第5行字节不同怎样办?肯定不能原文件内输出了,还是需要用一个新文件,这边读,那边写才行 另外,C语言用的是fgets,也是读到'\n'停止,可以按文本文件方式一行行读入

寒亭区17037818002: 在C++中如何从文件中读取多行数据 -
枕亨洛芙: 使用一个 eof() 函数,判断文件有没有结束 如: while(!file.eof()){if (i%500==0){file2 << file.tellg() ;file2.put('|');file.getline(Eng,500,' ');file2 << Eng<file.getline(no,100,' '); file.getline(Chi,10000,'\n'); i++; } else { ......

寒亭区17037818002: C++文件读取功能...多行文件怎么读取呢? -
枕亨洛芙: #include #include using namespace std; int main(){ ifstream input("in.txt"); string id, name; //可把id、name改成数组 while(input >> id){ //cin、文件流读取字符串时,默认跳过空格、换行等字符 id = id.substr(3); input >> name; name = name.substr(5); cout << id << " " << name << endl; } input.close(); return 0; }

寒亭区17037818002: c++中如何读取指定文件中任意行的内容 -
枕亨洛芙: 普通文本没法快速实现,只有自定义的格式可以,先存储行索引.然后只需要读取行索引头然后再根据索引头快速定位到任意行. 没有初始化索引头的文件,可以在第一次读取时候先另外建立一个索引文件,以后读取就快了

寒亭区17037818002: VC++中如何循环读取TXT文件的每一行内容 -
枕亨洛芙: C++用fstream中的getline()函数读取一行文件内容 C语言可用fgets()函数读取一行文件内容 两者有一些区别: 1、fgest()读到回车结束,回车符也会写到接收buf中 2、getline()可以设定读到哪个字符结束,默认是回车符,但指定的这...

寒亭区17037818002: c++如何依次读取txt中每行内容 -
枕亨洛芙: 1.用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中.2.例程:#include<stdio.h> #include<string.h> void main() {char a[100],b[100],c[100];int i=3,j=4,k=0; //第三行,第四列...

寒亭区17037818002: C++的如何在打开一个文本后,一行一行的读取内容? -
枕亨洛芙: 1. 假如定义一个文本,格式如下: 2. 1 2 32 3 43 4 55 6 77 8 93. 文件名为test.txt(包含5行)4. C++代码如下:#include #include #include #include int main(int args, char **argv) { std::ifstream fin("split.txt", std::ios::in); char line[1024]={0}; std::...

寒亭区17037818002: c++如何读取文本, 每一行存储到一个数组里面? -
枕亨洛芙: 1、fopen函数可以读取文件,读到的每一行保存在字符数组中,根据空格作为分隔符进行分割.2、例程:#include <stdio.h> #include <string.h> #define MAXLINE 3 #define MAXCOLUMN 10 void main(void){FILE *fp; //文件指针char arr[...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网