如何使用下面的函数从文本文件中输入char *数组? 非常感谢。
char* data2[] = { 0 };
char ch;
fstream fin("../level_15.txt", fstream::in);
while (fin >> noskipws >> ch) {
cout << ch ; // Or whatever
}
我正在尝试获得如下所示的结构数组:
char* data[] = {
/// level 1
"aaaaaaaaaaaaaa",
"bbbbbbbbbbbbbb"
};
cat example.txt
"aaaaaaaaaaaaaa",
"bbbbbbbbbbbbbb"
答案 0 :(得分:3)
std::ifstream fin("source.txt");
// get pointer to associated buffer object
std::filebuf* pbuf = fin.rdbuf();
// get file size using buffer's members
std::size_t size = pbuf->pubseekoff (0,fin.end,fin.in);
pbuf->pubseekpos (0,fin.in);
// allocate memory to contain file data
char* buffer=new char[size];
// get file data
pbuf->sgetn (buffer,size);
fin.close();
请参阅char * buffer包含您想要的内容。请注意,您应该在使用后释放创建的char *。
答案 1 :(得分:0)
代码下来,Link for more information and desc
#include <iostream> // library that contain basic input/output functions
#include <fstream> // library that contains file input/output functions
using namespace std;
int main()
{
int array_size = 1024; // define the size of character array
char * array = new char[array_size]; // allocating an array of 1kb
int position = 0; //this will be used incremently to fill characters in the array
ifstream fin("test.txt"); //opening an input stream for file test.txt
/*checking whether file could be opened or not. If file does not exist or don't have read permissions, file
stream could not be opened.*/
if(fin.is_open())
{
//file opened successfully so we are here
cout << "File Opened successfully!!!. Reading data from file into array" << endl;
//this loop run until end of file (eof) does not occur
while(!fin.eof() && position < array_size)
{
fin.get(array[position]); //reading one character from file to array
position++;
}
array[position-1] = '\0'; //placing character array terminating character
cout << "Displaying Array..." << endl << endl;
//this loop display all the charaters in array till \0
for(int i = 0; array[i] != '\0'; i++)
{
cout << array[i];
}
}
else //file could not be opened
{
cout << "File could not be opened." << endl;
}
return 0;
}