2013-07-19 1 views
1

배열에 문자열을 저장할 수 없습니다. b[c]이 전혀 나타나지 않습니다. 어떻게 배열에 저장할 수 있습니까?문자열을 배열에 저장할 수 없습니다. 배열을 비교를 위해 사용하려고합니다.

int main(int argc, char *argv[]) 
{ 
    string b[80000]; 
    int c=0; 
    string s; 
    ifstream file(argv[1]); 

    while(file >> s) { 
     b[c]=s; 
     c++; 
     cout<<b[c]; 
    } 

    system("pause"); 
    return 0; 
} 
+1

를 작동 할 수 있습니다. 나는 당신이 필요하다고 생각한다. [태그 : C++] ** tag ** –

+0

@GrijeshChauhan 나는 C에서 C++로 태그를 변경했다. –

+1

'b [c] = s;'가 틀리다 –

답변

3

빈 문자열을 인쇄하고 있습니다.

#include <iostream> 
#include <vector> 
#include <string> 
#include <fstream> 

int main(int argc, const char* argv[]) 
{ 
    std::ifstream fin(argv[1]); 

    std::vector<std::string> v 
    { 
     std::istream_iterator<std::string>(fin), 
     std::istream_iterator<std::string>() 
    }; 

    for(const auto& elem: v) 
     std::cout << elem << std::endl; 

    return 0; 
} 

하지 마십시오, 파일 이름이 전달되지 않는 경우도 경우를 처리 잊어 버렸거나 파일 : 그냥 불필요한 임시 변수와 마법 상수를 피할 것, 내가 사용 std::vector 좋을 것 c++;

전에 cout << b[c]; 이동 존재하지 않습니다.

1

이것은 당신이`string` 데이터 형식 inbuild이없는 C`, 그 이유는 너무 오래 버퍼 (당신이 문자 [N]``수행해야하는)`에서

while(file >> s) { 
      b[c]=s; 
      cout<<b[c]; 
      c++; 

     } 
+0

ahaa'[c]'무엇입니까 ?? 그리고 왜 ? –

+0

죄송합니다. 코드를 복사하는 동안 오타가 발생했습니다. –

+0

괜찮 았어 들었어, 설명이 필요해. 어떻게 해결했는지 문제가 생겼습니다. –

관련 문제