30/09/2018, 16:16

Cách nhập xuất với file trong C++?

tình hình là thế này:mình có thử đoạn code lấy dữ liệu từ một file text in ra màn hình trong file đó có tên và ngày sinh.khi lấy dữ liệu vs đoạn code này thì bị lỗi.mình hiểu là nó coi khoảng trắng là số 0.có cách nào lấy ra hết dữ liệu ko nhỉ?

#include<iostream>
#include<fstream>
#include<stdlib.h>
#include<string>
using namespace std;

main(){
    ifstream f;
    f.open("test.txt");
    if(!f){
    cout<<"khong the mo tep"<<endl;
    exit(0);
    }
    int i=0,so;
    string ten,
    while(!f.eof()){
    f>>ten;
    cout<<ten;
    i++;
    }
    system("pause");
}
Phạm Hoàng Tuấn viết 18:32 ngày 30/09/2018

Bạn xem lại cách trình bày code ở đây để trình bày lại nhé

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…

Nguyễn Minh Dũng viết 18:25 ngày 30/09/2018

mình hiểu là nó coi khoảng trắng là số 0

#SAI

Khoẳng trắng là 32. Số 0 là kết thúc chuỗi.

#include <stdio.h>

int main()
{
    char c = ' '; // khoảng trắng
    printf("%d\n", c); // sẽ in ra 32
    return 0;
}

Còn đây là ví dụ đọc file:

#include <fstream>
#include <iostream>
using namespace std;
 
int main ()
{
    
   char data[100];

   // open a file in write mode.
   ofstream outfile;
   outfile.open("afile.dat");

   cout << "Writing to the file" << endl;
   cout << "Enter your name: "; 
   cin.getline(data, 100);

   // write inputted data into the file.
   outfile << data << endl;

   cout << "Enter your age: "; 
   cin >> data;
   cin.ignore();
   
   // again write inputted data into the file.
   outfile << data << endl;

   // close the opened file.
   outfile.close();

   // open a file in read mode.
   ifstream infile; 
   infile.open("afile.dat"); 
 
   cout << "Reading from the file" << endl; 
   infile >> data; 

   // write the data at the screen.
   cout << data << endl;
   
   // again read the data from the file and display it.
   infile >> data; 
   cout << data << endl; 

   // close the opened file.
   infile.close();

   return 0;
}

Nguồn: http://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm

Khai Nguyen Dinh viết 18:27 ngày 30/09/2018

với đoạn code như trên .mình tạo một file trong đó có thế này:nguyen dinh khai 111; và kết quả nó in ra là:nguyen0 mà không in ra hết???

Nguyễn Minh Dũng viết 18:24 ngày 30/09/2018

Đoạn code trên chạy ổn mà? Mình sửa lại 1 ít thì chạy ổn.

#include<iostream>
#include<fstream>
#include<string>

using namespace std;

int main()
{
    ifstream f;
    f.open("test.txt");
    if(!f)
    {
        cout<<"khong the mo tep"<<endl;
        return 1;
    }
    int i=0,so;
    string ten;
    while(!f.eof())
    {
        f >> ten;
        cout << ten << " ";
        i++;
    }
    return 0;
}
Thực tế khắc nghiệt viết 18:20 ngày 30/09/2018

đang vọc fstream sẽ có 1 bài chi tiết về resize và push back ở dạng wiki

Quân viết 18:28 ngày 30/09/2018

Với những dạng này bạn nên ghi theo kiểu nhị phân (ghi cấu trúc) sẽ làm tốt hơn đấy.

Bài liên quan
0