2012-07-17 2 views
1

안녕하세요. 프로그래밍 초보자입니다. 바보처럼 들릴 수 있습니다. 그러나 나는 정말로 많은 것을 모른다. 사용자 입력이 숫자 또는 문자열/단어 일 수있는 프로그램을 작성하고 싶습니다. 그것이 숫자라면, 그것은 어떤 방식으로 처리 될 것입니다; 단어 일 경우 다른 방식으로 처리됩니다. 즉 입력 유형을 확인하고 그에 따라 작업하고 싶다는 뜻입니다! 나는 이것을 시도했지만 작동하지 않습니다!입력 유형을 확인하고 그에 따라 작동합니다.

#include<stdio.h> 
#include<string.h> 
#include<iostream> 
using namespace std; 
int main() 
{ 
    int number; 
    string word; 
    cout<<"enter a number or a word\n"; 
    while(cin>>number || cin>>word){ 
    if(cin>>number){ 
     cout<<number<<"\n";} 
    if(cin>>word){ 
     cout<<word<<"\n";} 
    } 
    return 0; 
} 
+0

.. 코드에 약간의 실수가있다 .. 그것은 코드에 기록 된대로 사용법 #include 될 것입니다 C++! –

답변

2

포맷 된 추출이 실패하면 스트림이 "실패"상태가되어 더 쉽게 처리 할 수 ​​없습니다. 은 항상 문자열을 읽고 파싱을 시도하는 것이 훨씬 간단합니다. 이 같은 예를 들어 :

#include <iostream> 
#include <string> 

for (std::string word; std::cin >> word;) 
{ 
    long int n; 
    if (parse_int(word, n)) { /* treat n as number */ } 
    else     { /* treat word as string */ } 
} 

에만 파서 기능이 필요합니다

#include <cstdlib> 

bool parse_int(std::string const & s, long int & n) 
{ 
    char * e; 
    n = std::strtol(s.c_str(), &e, 0); 
    return *e == '\0'; 
} 
0

좋아을, 어떻게 cincout 작품을 먼저 읽을 필요가있다.

문제에 대한 해결책은

1) Declare a single string variable eg: var_input 
2) Take input only once (using cin>>var_input) 
3) Check if the string is a number or a word taking help from Link One 

링크 하나가 될 것입니다 : 잘 How to determine if a string is a number with C++?

관련 문제