도움을 받고자하는 특정 문제가 있습니다. 여기가는 방법입니다 나중에 처리하기 위해 문자 배열에 문자의 일정 금액을 읽으려면 다음 코드를 사용하고C++ 파일을 잘못 읽음
:
char str[15]; // first 16 characters that i need to get from file
std::ifstream fin("example.txt");
if(fin.is_open()){
std::cout<<"File opened successfully \n";
for(int i = 0; i<=15; i++)
{
fin.get(str[i]); //reading one character from file to array
}
}
else{
std::cout<<"Failed to open file";
}
std::cout<<str;
그것은 처음 4 또는 5 자에 대해 잘 작동 , 8에 도달하면 쓰레기 문자를 출력하기 시작합니다.
텍스트를 읽은 example.txt 파일의 내용. 나는 16 자 읽을 때
The Quic�j�
출력 :
The Quick Brown Fox Jumped Over The Lazy Dog The Quick Brown Fox Jumped Over The Lazy Dog
출력 I 8 개 문자를 읽을 때
The Quick Brown ASCII
왜이 일어나고을 어디서 'ASCII가'시에서 왔는가 I 파일에서 특정 길이를 읽으려고합니까?
마지막으로 특정 길이의 파일을 가져 오려면 어떤 코드를 사용해야합니까? 예를 들어 처음 4 또는 8 또는 16 또는 심지어 20자를 읽고 싶습니까? 반드시 문자 배열에 있어야 할 필요는 없으며 문자열로 저장할 수 있습니다.
미리 감사드립니다.
파일에서 마지막으로 읽은 문자 다음에' '\ 0'' 문자를 넣어야합니다. –
std :: string line; getline (fin, line); std :: cout << line; // 게으른 개 위로 뛰어 오른 갈색 여우 – Jagannath
너의 문자 배열이 커야하거나 루프가 15보다 작고 15보다 작을 필요가있다. C++은 0에서 n - 1이다. 배열 인덱스의 경우. –