2015-10-27 2 views
-1

У меня есть код для задания здесь.Попытка обнаружить строку в C++

stringstream fNameStream(fName); 
    stringstream lNameStream(lName); 
    if (fNameStream >> word) 
    { 
     fNameStream >> names[count]; 
     count++; 
    } 
    else 
    { 
     fNameStream << "John"; 
     fNameStream >> names[count]; 
     count++; 
    } 

Ошибка в том, что я не получаю никаких значений при проверке моего массива позже. Поэтому я не уверен, в чем проблема. Когда я ввел значения до без цикла if, я смог получить значения, но когда я делаю это, я ничего не получаю. Извините, если это некогерентно или непонятно (просто дайте мне знать). Я довольно похмелье.

+1

Добро пожаловать в переполнение стека! Пожалуйста, ** ** [изменить] ** ваш вопрос с помощью [mcve] или [SSCCE (Short, Self Contained, Correct Example)] (http://sscce.org) – NathanOliver

+0

Возможно, вам стоит выпить какой-то томатный сок. :-D – GreatAndPowerfulOz

+0

lol, я работаю над ним> _ <. Его трудная причина - это должно быть в 12 часов вечера! Промедление ftw – harrisoncrazy

ответ

1

это работает?

bool isWord(std::string s) 
{ 
    for (int i = 0; i < s.length; ++i) 
    { 
     if (!::isalpha(s[i])) 
      return false; 
    } 
    return true; 
} 


int main() 
{ 
    while (fNameStream >> word) 
    { 
     if (isWord(word)) 
     { 
      names[count++] = word; 
     } 
     else 
     { 
      // placeholder 
     } 
    } 
} 
+0

Нет, я пытаюсь сделать проверку ошибок, чтобы убедиться, что вещь, которую я вводил, на самом деле является строкой. – harrisoncrazy

+0

@harrisoncrazy Что вы подразумеваете под «строкой», вы имеете в виду только буквы или цифры? – GreatAndPowerfulOz

+0

Только буквы, мне нужно определить, является ли имя, которое ищет, на самом деле является именем, а не цифрами или символами, и если оно переключает его на строку-заполнитель – harrisoncrazy

Смежные вопросы