Loại bỏ ký tự xuống dòng khi đọc file

Khi em đọc từ file ra str[i] thì trong str[i] sẽ lưu cả ký tự \n, có cách nào để bỏ ký tự \n không ạ.
Em cảm ơn!

Đây là file:

kdt|123|
ktth|213|
kvd|321|

Đây là code:

#include <iostream> 
#include <string> 
#include<fstream>
using namespace std; 

int main() 
{
	fstream f;
	f.open("vidu.txt",ios::in);
	string str[20];
	int i=0;
	while(!f.eof()){
		getline(f,str[i],'|');
		i++;
	}
	for (int j=0;j<i;j++){
		cout<<str[j];
	}
	if (str[4]=="\nkvd")
		cout<<endl<<"dung roi!!!!";
	f.close();

    return 0;
}

Kết quả là:

dung roi!!!

Tham số thứ 3 của getline(). Lúc này nó không còn là “getline” nữa rồi.

Vậy thì làm cách “củ chuối” này nhé:

	string d;
	while(!f.eof()){
		getline(f,str[i],'|');
		i++;
		getline(f,str[i],'|');
		i++;
		getline(f,d);
	}

Còn cách hay là dùng getline() cùng với strtok()
Đọc nguyên 1 dòng bằng getline(), tách dòng đó ra từng phần bằng strtok() thông qua kí tự |.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?