ifstream

C++读写文件总结 .

丶灬走出姿态 提交于 2020-02-01 00:22:03
在C++中如何实现文件的读写? 一、ASCII 输出 为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已经使用<fstream>取代< fstream.h>,所有的C++标准头文件都是无后缀的。)。这是 <iostream.h>的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, <iostream.h> 已经被<fstream.h>包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是"fstream," 恭喜你答对了! 但这篇文章介绍的方法,我们分别使用"ifstream"?和 "ofstream" 来作输入输出。 如果你用过标准控制台流"cin"?和 "cout," 那现在的事情对你来说很简单。 我们现在开始讲输出部分,首先声明一个类对象。 ofstream fout; 这就可以了,不过你要打开一个文件的话, 必须像这样调用ofstream::open()。 fout.open("output.txt"); 你也可以把文件名作为构造参数来打开一个文件. ofstream fout("output.txt"); 这是我们使用的方法, 因为这样创建和打开一个文件看起来更简单. 顺便说一句, 如果你要打开的文件不存在,它会为你创建一个,

Having trouble with fstream in Xcode

南笙酒味 提交于 2020-01-30 08:47:03
问题 I'm having trouble validating the existence of REGISTER.txt for input purposes in a function (see below). My understanding is that if the file doesn't exist, then the file won't be opened and the file stream variable (inData) will be false. Thus, I can use that variable in an if/else statement to verify whether or not it opened. But even though REGISTER.txt is in the same directory as my .cpp file, my code still says that it wasn't opened. Here's the thing though. When I run the same exact

Having trouble with fstream in Xcode

六月ゝ 毕业季﹏ 提交于 2020-01-30 08:46:06
问题 I'm having trouble validating the existence of REGISTER.txt for input purposes in a function (see below). My understanding is that if the file doesn't exist, then the file won't be opened and the file stream variable (inData) will be false. Thus, I can use that variable in an if/else statement to verify whether or not it opened. But even though REGISTER.txt is in the same directory as my .cpp file, my code still says that it wasn't opened. Here's the thing though. When I run the same exact

C++ 把输出结果写入到文件中

谁说我不能喝 提交于 2020-01-28 10:12:11
文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。   一、ASCII 输出   为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已经使用<fstream>取代< fstream.h>,所有的C++标准头文件都是无后缀的。)。这是 <iostream.h>的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, <iostream.h> 已经被<fstream.h>包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是"fstream," 恭喜你答对了! 但这篇文章介绍的方法,我们分别使用"ifstream"?和 "ofstream" 来作输入输出。   如果你用过标准控制台流"cin"?和 "cout," 那现在的事情对你来说很简单。 我们现在开始讲输出部分,首先声明一个类对象。ofstream fout;   这就可以了,不过你要打开一个文件的话, 必须像这样调用ofstream::open()。 fout.open("output.txt");   你也可以把文件名作为构造参数来打开一个文件. ofstream fout("output

eof() is returning last character twice [duplicate]

℡╲_俬逩灬. 提交于 2020-01-25 20:28:26
问题 This question already has answers here : Why is iostream::eof inside a loop condition (i.e. `while (!stream.eof())`) considered wrong? (4 answers) Closed 4 years ago . I am reading in from an input file "input.txt" which has the string 'ABCDEFGH' and I am reading it in char by char. I am doing this using the code: ifstream plaintext (input.txt); char ch; if (plaintext.is_open()) { while(!plaintext.eof()){ plaintext.get(ch); cout<<ch<<endl; } plaintext.close(); } The string 'ABCDEFGHH' is

C++ reading text file by blocks

安稳与你 提交于 2020-01-24 15:57:47
问题 I really didn't find a satisfied answer at google and I/O in C++ is a little bit tricky. I would like to read text file by blocks into a vector if possible. Alas, I couldn't figure out how. I am not even sure, if my infinite loop will be break in all possibilities, because I/O is tricky. So, the best way I was able to figure out is this: char buffer[1025]; //let's say read by 1024 char block buffer[1024] = '\0'; std::fstream fin("index.xml"); if (!fin) { std::cerr << "Unable to open file"; }

C++ std::ifstream in constructor problem

房东的猫 提交于 2020-01-21 05:12:38
问题 I've got a problem with this code: #include <fstream> struct A { A(std::ifstream input) { //some actions } }; int main() { std::ifstream input("somefile.xxx"); while (input.good()) { A(input); } return 0; } G++ outputs me this: $ g++ file.cpp file.cpp: In function `int main()': file.cpp:17: error: no matching function for call to `A::A()' file.cpp:4: note: candidates are: A::A(const A&) file.cpp:6: note: A::A(std::ifstream) After changing it to this it compile (but that is not solving the

How can I open a file in c++, without erasing its contents and not append it?

本小妞迷上赌 提交于 2020-01-16 08:46:11
问题 I am trying to find a way using which I can Edit the contents in a binary file, without reading the whole file. Suppose this is my file abdde And I want to make it abcde I tried following:- Attempt 1) ofstream f("binfile", ios::binary); if(f.is_open()){ char d[]={'c'}; f.seekp(2,ios::beg); f.write(d, 1); f.close(); } //the file get erased Output: **c Attempt 2) ofstream f("binfile", ios::binary | ios::app); if(f.is_open()){ char d[]={'c'}; f.seekp(2,ios::beg); f.write(d, 1); f.close(); } /

getline函数

▼魔方 西西 提交于 2020-01-16 02:14:57
在我的印象中,getline函数常常出如今自己的视野里,模糊地记得它常常常使用来读取字符串 。可是又对它的參数不是非常了解,今天又用到了getline函数,如今来细细地总结一下: 首先要明确设计getline函数的目的,事实上非常easy,就是从流中读取字符串。并且读取的方 式有非常多,包含依据限定符,依据已读取的字符的个数。从这个函数的名称来看,它的直观 意义是从流中读取一行,可是大家不要被这表面的现象所迷惑。事实上假设让我来为这个函数 去一个名字的话,也许我会取一个getString,由于它的目的本来就是从流中读取字符的序 列,而不是像get函数那样一次读取一个字符。 另外要注意,C++中有两个getline函数,一个是在string头文件里,定义的是一个全局的 函数,函数声明是istream& getline ( istream& is, string& str, char delim )与 istream& getline ( istream& is, string& str );还有一个则是istream的成员函数,函 数声明是istream& getline (char* s, streamsize n )与istream& getline (char* s, streamsize n, char delim )

getline()函数

怎甘沉沦 提交于 2020-01-16 02:14:03
在我的印象中,getline函数经常出现在自己的视野里,模糊地 记得它经常用来读取字符串 。但是又对它的参数不是很了解,今天又用到了getline函数, 现在来细细地总结一下: 首先要明白设计getline函数的目的,其实很简单,就是从流中 读取字符串。而且读取的方 式有很多,包括根据限定符,根据已读取的字符的个数。从这 个函数的名称来看,它的直观 意义是从流中读取一行,但是大家不要被这表面的现象所迷惑 。其实如果让我来为这个函数 去一个名字的话,或许我会取一个getString,因为它的目的本 来就是从流中读取字符的序 列,而不是像get函数那样一次读取一个字符。 另外要注意,C++中有两个getline函数,一个是在string头文 件中,定义的是一个全局的 函数,函数声明是istream& getline ( istream& is, string& str, char delim )与 istream& getline ( istream& is, string& str );另一个则 是istream的成员函数,函 数声明是istream& getline (char* s, streamsize n )与 istream& getline (char* s, streamsize n, char delim );注意第二个getline是将读取