01/10/2018, 16:05

Hỏi về đọc file text trong C++

Mình có 1 file text chứa 1 dãy kí tự: abcdef. Đề là đọc file text và nhập 1 kí tự muốn xóa từ bàn phím, kết quả in ra là chuỗi mới không có kí tự xóa.
đây là code của mình

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <fstream>
using namespace std;
void main()
{
	ifstream text("input12.txt",ios::in);
	char a[255];
	while (text.getline(a, 255))
	{
		cout << a << endl;
	}
	char x;
	printf_s("
nhap ki tu muon xoa: ");
	scanf_s("%c", &x);
	for (int i = 0; i < strlen(a); i++)
	{
		if (a[i] == x)
		{
			for (int j = 1; j < strlen(a); j++)
			{
				a[j] = a[j + 1];
			}
		}
	}
	cout << a << endl;
	_getch();
}

khi debug thì tới lúc nhập kí tự xong thì nó ko ra kq.Ai có thể sửa giùm mình sai ở đâu với được k a

Nguyễn Thắng viết 18:18 ngày 01/10/2018
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main()
{
	ifstream text("input12.txt",ios::in);
	char a[255];
	int n;
	char x;
	while (text.getline(a, 255))
	{
		cout << a << endl;
        cout<< "\nnhap ki tu muon xoa: ";
        cin>> x;

	for(int i = 0;i < strlen(a); i++)
	{
        if(a[i] == x)
        {
            for(int j = 0; j < strlen(a); j++)
			{
				a[j] = a[j + 1];
			}
        }
	}
        cout << a << endl;
	}
	text.close();
}
Nguyễn Thắng viết 18:21 ngày 01/10/2018

Bạn thử xem có chạy được không

Vĩ Huỳnh viết 18:06 ngày 01/10/2018

Cho chạy từ 0 đến len
Nếu text có xuống hàng thì đọc một đoạn
While(!feof(f))
A[ strlen-1 ]=‘0’

Đỗ Q Việt viết 18:06 ngày 01/10/2018

Bạn thử cách này đơn giản hơn nè :
x là ký tự cần xóa
For (int i=0;i<a.length;i++)
If (a[i] != x) cout << a[i];

Bài liên quan
0