Kezdőoldal » Számítástechnika » Programozás » C++ txt-ből karaktertömb-be...

C++ txt-ből karaktertömb-be beolvasás miért fagy ki?

Figyelt kérdés

Működik ugyan, de a Press any key- után kifagy a cmd. Mi lehet a gond?


#include <iostream>

#include <fstream>

#include <string>

#include <cstdlib>


using namespace std;

int main()

{


char getdata[30], temp[30];

int cont=0;

fstream data;

data.open("test.txt",ios::in);


while(!data.eof())

{

data.getline(getdata,sizeof(data));

cout<<getdata<<endl;

}


data.close();


cout<<"A char tomb elso eleme: "<<getdata[0]<<endl;


system("pause");


return 0;

}


2018. jan. 21. 11:12
 1/3 anonim ***** válasza:
az fstream eof metódusa nem "jósnő", nem tudja megmondani h éppen a fájlvégnél vagyunk. Az csak annyit tud hogy az előző műveltnél beállítódott-e az EOF flag.
2018. jan. 21. 11:19
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:
Ha fix 30-as karaktertömböt akarsz feltölteni, akkor minek egyáltalán a while ciklus? Simán olvasd be egyetlen utasítással és kész.
2018. jan. 21. 11:59
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

Ez a sor miatt fagy ki: data.getline(getdata,sizeof(data)); sizeof(data) helyett sizeof(getdata) kell.


De én ezt inkább így írnám meg:

#include <fstream>

#include <iostream>

#include <string>


int main() {

std::ifstream ifs{"test.txt"};

for (std::string line; std::getline(ifs, line);) {

std::cout << line << '\n';

}

std::cout << "Nyomj entert a kilepeshez" << std::endl;

std::cin.get();

}

2018. jan. 21. 20:45
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!