문자열 배열 무한 루프에 대한 C ++ 사용자 입력

Tangwheeler

사용자 입력 문자열을 배열로 구문 분석하려고합니다. Example: user inputs "hello to you" array[0]="hello" array[1]="to" array[2]="you'사용자에게 몇 가지 단어를 입력하라는 메시지가 표시되면 프로그램이 무한 반복되는 것처럼 보입니다. 나는 또한 벡터를 사용해 보았으므로 다른 영역의 내 논리 일 수 있습니다. 나는 C 언어에 관해서는 매우 녹슬 기 때문에 내 무지를 용서해주십시오. 어떤 도움이라도 대단히 감사하겠습니다!

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

struct FATNode;
struct FileNode;
class FileList;

class FAT
{
    FATNode* head;

};

class FileList
{
    FileNode* head;

    //methods
    public: 
        int createfile()
        {
            string word[2];
            cout << "Please input file name, followed by file size: ";

            int i = 0;
            for (string input; cin >> input; i++)
                    word[i] = input;

            for(i=0; i<2; i++)
                cout << word[i] << ' ';
            return 0;
        }

};

struct FileNode
{
    string filename;
    int filesize;
    FAT t1;
    FileNode* next;
};

struct FATNode
{
    int sectornumber;
    FATNode* next;
};

main()
{
    FileList myFileSystem;
    char start;
    int cmd;
    bool cont = true;

    while(cont == true)
    {
        cout << "Initializing disk.\n" << "To access menu, type 'Y'. To exit, type 'N': ";
        cin >> start;

        if(start == 'y' || start == 'Y')
        {
            cout << "What command would you like to execute on the disk?" << endl;
            cout << "1. Format disk\n2. Create file\n3. Delete file\n";
            cout << "4. List\n5. Read file\n6. Overwrite file\n7. Append to file\n8. Disk status\nSelection: ";
            cin >> cmd; 

            switch(cmd)
            {   
                case 1 :
                    break;
                case 2 :
                        myFileSystem.createfile();
                    break; 
                default :
                        cout << "Invalid command" << endl;
            }
        }
        else if(start == 'n' || start == 'N')
        {
            cont = false;
        }
        else
        {
            cout << "Invalid input." << endl;
        }
    }
}
tonisuter

루프 조건은 cin >> input입니다. 이 표현식은를 반환 cin하며 이는 암시 적으로 부울 ( http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool ) 로 변환 될 수 있습니다 . 그러나 오류가 있거나 파일 ( )의 끝에 도달 한 경우 cin에만이됩니다 . Ctrl + D를 눌러 신호 보낼 수 있습니다 .falseEOFEOF

또한 사용자로부터 얻은 정보를 저장하기 위해 고정 크기 배열을 사용하고 있습니다. 사용자가 2 개 이상의 단어를 입력하면 배열 word이 오버플 로되기 때문 입니다. 그것은 정의되지 않은 행동입니다.

파일 이름과 파일 크기 만 원하는 경우 다음을 사용하는 것이 좋습니다.

std::string filename;
std::size_t filesize;
std::cin >> filename >> filesize;

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

사용자가 입력 한 배열의 for 루프 관련 문제

분류에서Dev

Java에서 문자열 배열에 대한 사용자 입력 가져 오기

분류에서Dev

Java에서 문자열 배열에 대한 사용자 입력 가져 오기

분류에서Dev

루프에서 lm ()에 대한 문자열 입력 문제

분류에서Dev

문자열 배열에 대한 C 타입과 포인터

분류에서Dev

C-문자 사용자 입력과 동일한 배열의 문자 문자열 정렬

분류에서Dev

기존 C 문자 배열에 대한 신속한 문자열

분류에서Dev

문자열 C ++에 대한 HEX 출력

분류에서Dev

배열 크기에 대한 사용자 입력

분류에서Dev

사용자가 입력 한 문자열을 char 배열 대신 char 포인터에 저장하는 방법

분류에서Dev

부호없는 문자 배열에 대한 입력

분류에서Dev

부호없는 문자 배열에 대한 입력

분류에서Dev

2 문자에 대한 C 프로그램 2 차원 배열 char 값 출력

분류에서Dev

FOR 루프 배치 구문에서 변수를 사용한 문자열 대체

분류에서Dev

배열에서 사용자가 입력 한 문자 수를 계산하는 방법은 무엇입니까?

분류에서Dev

사용자가 입력 한 문자열로 do while 루프를 종료하는 방법은 무엇입니까?

분류에서Dev

문자열에 대한 루프 강화

분류에서Dev

C에서 루프를 사용하여 문자 배열에 문자를 입력하는 방법은 무엇입니까?

분류에서Dev

배열의 문자 요소를 사용자 입력으로 입력 한 다른 문자로 대체

분류에서Dev

배열에 포함 된 문자열에 대한 Objective-C PFQuery?

분류에서Dev

문자열에 대한 배열

분류에서Dev

문자열 배열에 대한 음수?

분류에서Dev

int에 대한 배열 문자열 값

분류에서Dev

c # 문자열 배열에 대한 모델 설정

분류에서Dev

C 프로그래밍 입력 한 문자열을 화면에 출력하는 방법은 무엇입니까?

분류에서Dev

평평한 문자열 배열에 대해 dom-repeat 사용

분류에서Dev

사용자 입력에 기반한 가중치 배열

분류에서Dev

문자열 배열 포인터 / 배열 이름에 대한 유효한 할당은 무엇입니까?

분류에서Dev

루프를 사용하여 입력 문자열을 모두 입력 한 후 출력

Related 관련 기사

  1. 1

    사용자가 입력 한 배열의 for 루프 관련 문제

  2. 2

    Java에서 문자열 배열에 대한 사용자 입력 가져 오기

  3. 3

    Java에서 문자열 배열에 대한 사용자 입력 가져 오기

  4. 4

    루프에서 lm ()에 대한 문자열 입력 문제

  5. 5

    문자열 배열에 대한 C 타입과 포인터

  6. 6

    C-문자 사용자 입력과 동일한 배열의 문자 문자열 정렬

  7. 7

    기존 C 문자 배열에 대한 신속한 문자열

  8. 8

    문자열 C ++에 대한 HEX 출력

  9. 9

    배열 크기에 대한 사용자 입력

  10. 10

    사용자가 입력 한 문자열을 char 배열 대신 char 포인터에 저장하는 방법

  11. 11

    부호없는 문자 배열에 대한 입력

  12. 12

    부호없는 문자 배열에 대한 입력

  13. 13

    2 문자에 대한 C 프로그램 2 차원 배열 char 값 출력

  14. 14

    FOR 루프 배치 구문에서 변수를 사용한 문자열 대체

  15. 15

    배열에서 사용자가 입력 한 문자 수를 계산하는 방법은 무엇입니까?

  16. 16

    사용자가 입력 한 문자열로 do while 루프를 종료하는 방법은 무엇입니까?

  17. 17

    문자열에 대한 루프 강화

  18. 18

    C에서 루프를 사용하여 문자 배열에 문자를 입력하는 방법은 무엇입니까?

  19. 19

    배열의 문자 요소를 사용자 입력으로 입력 한 다른 문자로 대체

  20. 20

    배열에 포함 된 문자열에 대한 Objective-C PFQuery?

  21. 21

    문자열에 대한 배열

  22. 22

    문자열 배열에 대한 음수?

  23. 23

    int에 대한 배열 문자열 값

  24. 24

    c # 문자열 배열에 대한 모델 설정

  25. 25

    C 프로그래밍 입력 한 문자열을 화면에 출력하는 방법은 무엇입니까?

  26. 26

    평평한 문자열 배열에 대해 dom-repeat 사용

  27. 27

    사용자 입력에 기반한 가중치 배열

  28. 28

    문자열 배열 포인터 / 배열 이름에 대한 유효한 할당은 무엇입니까?

  29. 29

    루프를 사용하여 입력 문자열을 모두 입력 한 후 출력

뜨겁다태그

보관