C++从文本文件中读取行并进行编辑
C++ read line from text file and edit
首先,我想为我的英语道歉。我想创建一个程序,该程序从.txt文件中读取每一行,并在前面添加@",在末尾添加"。示例:@"我喜欢苹果"。这是我到目前为止的代码,它替换了".","?"和":",但我不想要那个。
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <values.h>
int main()
{ ifstream f;
f.open("lala.txt");
if(!f)
{
cout<<"Eroare la deschiderea fisierului!"<<endl;
}
char s[100],x;
int i,n=0, k=0;
ofstream g("adinarez.txt");
f.seekg(0,ios::beg); //ne pozitionam la inceputul fisierului
while(f)
{
f.get(x);
s[k]=x;
n++; k++;
}
f.close();
for (i=2; i<n-1; i++)
if((s[i]>=65) && (s[i]<=90))
{ s[i-1]='"';
s[i-2]='@';}
for(i=0;i<n;i++)
if(s[i]=='.' || s[i]=='?' || s[i]==':' || s[i]==' ')
s[i+1]='"';
for(i=0;i<n;i++)
g<<s[i];
g.close();
return 0;
}
首先,如果您要处理面向行的输入,请使用 std::getline
逐行阅读;不要使用std::istream::get
.另外,您需要在读取后检查流的状态,而不是以前。 像while ( std::getline( f, line )
. 和line
应该是一个std::string
,所以你不必担心溢出。(有点。 如果一行包含的内存多于程序可以分配的内存,你会用一个未捕获的std::bad_alloc
坠毁. 但那会很多一百多个字符。 一旦你有了这条线,你就可以使用输出流上的<<
运算符以输出它。 以及您要输出的任何其他内容。
如果我没错的话,你理解的方式是这样的:
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::string line;
std::ifstream myfile("1.txt");
std::ofstream outfile("2.txt");
if(myfile.is_open())
{
while (getline(myfile,line))
outfile<<"@"<<line<<std::endl;
myfile.close();
}
else
std::cout << "Woops, couldn't open file!" << std::endl;
return 0;
}
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 读取目录中的多个文件以进行编辑和写入另一组文件
- 如何读取纹理数据,以便我可以编辑它
- 读取 USB 相机的输入编辑并将输出发送到 Windows 上的虚拟相机
- 在十六进制编辑器中写入程序内存,并以编程方式读取
- C++读取然后编辑文本文件
- C++从文本文件中读取行并进行编辑
- std::ifstream 在将文本编辑器从记事本++切换到Sublime Text 2以使用它正在读取的文件后无法读入?
- C++使用ifstream读取和编辑jpg文件
- QT创建者|如何使用行编辑读取目录(路径)
- 如何使用 c++ 文件流编辑(读取然后写入)文件
- 如何从Mat变量编辑/读取OpenCv中的像素值
- 从WinApi中的可编辑文本字段读取数据
- 一种单一的数据结构,用于从脚本中读取任意类型的变量,以便在运行时进行检索和编辑
- 如何在c++中读取和编辑文件txt
- 从编辑控件读取文本
- C++,从 txt 文件中读取文本并附加到文本框或将文本从编辑框附加到文本框
- C++(WINAPI - WIN32) 第二个编辑框无法读取输入值