폭토
34
2018-12-03 19:45:10
4
87

[리눅스,우분투] 텍스트 파일로 가져와서 출력하기



int main(int argc, char *argv[])

{

	ifstream ifile;

	string text[Max];

	

	string line;

	//string line;

	int size = 0; //size = 단어의 수 

	

	ifile.open("token.txt");



	if (!ifile.is_open())

	{

		cout << "Text is error!" << endl;

		return 0;

	}

	else {

		while (getline(ifile,line))

		{

			text[size]=line;

			cout << text[size]<<" ";		//문제가 되는 이부분	

			size++;

		}

	}

	cout << endl;

	mx = size;

	cout << "Word lenghth MAX is 20" << endl;

	

	//msd_radixsort(text, size);

	//for (int i = 0; i < size; i++)

	//	cout << text[i] << endl;

	return 0;

}


저가 우분투로 c++ 파일을 컴파일 하고 실행하는데 윈도우에서는 출력이 잘 됩니다.
하지만 우분투로 출력하니깐 깨져서 출력이 되더라구요....대체 뭐가 문제인지 모르겠습니다....

0
0
  • 답변 4

  • gyuS
    48
    2018-12-03 21:13:15

    while에 ifile.getline(text, 버퍼사이즈) 아닌가요

    또는

    while(!ifile.eof()) {

      ifile.getline(text, 100);

      //출력

      size++;

    }

    이런식으로 해보세요

    1
  • 폭토
    34
    2018-12-03 22:59:46

    @gyus 님이 알려주신 대로 해봤으나 text 가 에초에 string 배열이다 보니깐 컴파일 에러가 생기는 것 같습니다.ㅠㅠㅠ 컴파일 에러가 뜨네요...

    0
  • gyuS
    48
    2018-12-04 00:42:03 작성 2018-12-04 00:42:44 수정됨

    string text[max] 를 char text[max]로 해보세요


    해결되시면 채택 해주세요 ㅎ

    1
  • 폭토
    34
    2018-12-04 19:22:07

    @gyus 

    변수의 자료형의 문제가 아니었습니다.

    text 파일의 형식이 각 환경마다 다르게 읽힌다는 것이 문제였네요 ㅎㅎ 그래도 답변 감사드립니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.