Ich versuche, eine Benutzereingabezeichenfolge in ein Array zu analysieren. Example: user inputs "hello to you" array[0]="hello" array[1]="to" array[2]="you'
Nachdem ich den Benutzer aufgefordert habe, einige Wörter einzugeben, scheint das Programm endlos zu laufen. Ich habe auch versucht, einen Vektor zu verwenden, also kann es meine Logik in einem anderen Bereich sein. Ich bin sehr eingerostet, wenn es um die Sprache C geht, entschuldige bitte meine Unwissenheit. Jede Hilfe würde sehr geschätzt werden!C++ Benutzereingabe in String-Array-Endlosschleife
#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;
}
}
}
Wenn Sie eingeben möchten eine Textzeile, verwenden Sie 'std :: getline'. Alternativ können Sie dafür sorgen, dass Ihre Schleife beendet wird (und das Array nicht überläuft), indem Sie 'i <2 'hinzufügen. d. h. 'for (string input; i < 2 && cin >> input; i ++)' – paddy
Vielleicht sollten Sie einen Debugger verwenden, um das Verhalten Ihres Programms an der Stelle zu untersuchen, an der Sie das Problem erwarten. –
Ich konnte in Ihrem geposteten Code nichts finden, der Ihrer Frage entspricht. Es ist mir nicht klar, was du fragst. –