Bir kullanıcı giriş dizesini bir diziye ayrıştırmaya çalışıyorum. Example: user inputs "hello to you" array[0]="hello" array[1]="to" array[2]="you'
Kullanıcıdan bazı kelimeler girmesini istediğimde, program sonsuz döngü gibi görünüyor. Ayrıca bir vektör kullanmayı denedim, bu yüzden başka bir alandaki mantığım olabilir. C diline gelince çok paslıyım, lütfen cehaletimi bağışlayın. Herhangi bir yardım büyük takdir edilecektir!C++ dize dizisi sonsuz döngüsüne kullanıcı girişi
#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;
}
}
}
, 'std :: getline' kullanın. Alternatif olarak, 'i <2' ifadesini ekleyerek, döngünüzü sonlandırın (ve dizinin üzerine taşmayın). Yani (string giriş; i < 2 && cin >> giriş; i ++) ' – paddy
Belki de programınızın davranışını, problemi beklediğiniz konumun etrafına bakmak için bir hata ayıklayıcı kullanmalısınız. –
Gönderdiğiniz kodda sorunuzu eşleşen hiçbir şey bulamadım. Bana ne sorduğun belli değil. –