我試圖從文件中獲取值並查看它是int還是字符串。如果它是一個int,它應該進入tempNum var,如果它是一個字符串,它應該進入tempString var。我的代碼的其餘部分被寫入,我只需要將該值寫入正確的變量。從文件中獲取值以查看它們是int還是字符串
while (!myFile.eof())
{
try
{
myFile >> tempNum;
}
catch (invalid_argument&)
{
myfile >> tempString;
}
}
第二次嘗試:
ifstream myFile;
myFile.open("data.txt");
while (myFile >> tempString)
{
tempNum = -1;
tempString = "-0";
bool isInteger = true;
for (int i = 0; i < tempString.length(); ++i)
{
if (!isdigit(tempString[i]))
{
isInteger = false;
break;
}
}
if (isInteger)
{
tempNum = stoi(tempString);
if (tempNum != -1)
cout << tempNum;
}
if (tempString != "-0")
cout << tempString;
}
system("pause");
return 0;
該文件的格式是什麼? ASCII文本?如果是這樣,我們可以假設文件中沒有字符串只包含數字嗎? –
@JeremyFriesner這只是一個.txt文件,所以我會假設如此 – SaladSnake
在這種情況下,只要始終以字符串的形式讀取它,然後檢查字符串以查看它是否僅由數字組成,如果是,則將其轉換爲一個帶有atoi()的int(或者你喜歡使用的任何字符串到int的轉換函數)。 –