c++问题getline函数和文件操作。
来源:百度知道 编辑:UC知道 时间:2024/06/22 09:01:40
自己想开发一个小程序,从txt文本中读入一行字符,如果这一行为空就跳过,不为空就将该文本名字改为这一行字符。代码是这样的:
int main(int argc,char* argv[])
{
if(argc==1)
cout<<"没有文件!"<<endl;
else
for(int i=1;i!=argc;i++)
{
string temp(argv[i]);
ifstream infile(temp.c_str());
string line;
while(geline(infile,line))
{
if(line.empty())
continue;
}
line="ren "+temp+' '+line+".txt";
system(line.c_str());
infile.close();
}
return 0;
}
请各位大侠指教,感激不尽!
这样的代码编译出来总是把文本名字改为空,不知道问题出在哪里? 已经加入break了,还是不行啊?而且如果我把line初始化成什么字符串,它就把文本名字改成什么。
int main(int argc,char* argv[])
{
if(argc==1)
cout<<"没有文件!"<<endl;
else
for(int i=1;i!=argc;i++)
{
string temp(argv[i]);
ifstream infile(temp.c_str());
string line;
while(geline(infile,line))
{
if(line.empty())
continue;
}
line="ren "+temp+' '+line+".txt";
system(line.c_str());
infile.close();
}
return 0;
}
请各位大侠指教,感激不尽!
这样的代码编译出来总是把文本名字改为空,不知道问题出在哪里? 已经加入break了,还是不行啊?而且如果我把line初始化成什么字符串,它就把文本名字改成什么。
c++getline函数:
原型
istream& getline ( istream &is , string &str , char delim ); istream& getline ( istream& , string& );
参数
is 进行读入操作的输入流 str 存储读入的内容 delim 终结符
返回值
与参数is是一样的
功能
将输入流is中读到的字符存入str中,直到遇到终结符delim才结束。对于第一个函数delim是可以由用户自己定义的终结符;对于第二个函数delim默认为 '\n'(换行符)。 函数在输入流is中遇到文件结束符(EOF)或者在读入字符的过程中遇到错误都会结束。在遇到终结符delim后,delim会被丢弃,不存入str中。在下次读入操作时,将在delim的下个字符开始读入。
c++文件操作:
C++用 ifstream 声明输入文件对象,用 ofstream 声明输出文件对象。
使用ofstream简化文件输出(不用使用fwrtie):
使用ifstream简化文件输入(不用使用fread):
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
if(argc==1){ cout<<"没有文件!"<<endl; return 0;}
for(int i=1;i!=argc;i++){
&n