2014-11-17 11 views
1

파일을 읽은 다음 주석을 파일 내부의 대문자로 변환하려고합니다. 여기 C++ 프로그램의 대문자로만 변환하십시오.

내 코드입니다 :

char s[100]; 
void initstring(); 
void error(char); 
void cap(char s[]); 
void main(void) 
{ 
    initstring(); 
    getchar(); 
} 
void initstring() 
{ 

FILE *fp; 
fp = fopen("example.txt","r"); 
while(fgets(s,100,fp)!=NULL) 
{ 
    cap(s); 
} 

} 
void cap(char s[]) 
{ 
    cout << "its in"; 
for(int i=0;i<strlen(s);i++) 
{ 
    if(s[i]=='/' && s[i+1]=='/') 
    {  int x=i; 
     do 
     { 
      s[x]=toupper(s[x]); 
      x++; 
     }while(s[x]!='\n'); 
     break; 
    } 
    else if(s[i]=='/' && s[i+1]=='*') 
    { 
     int y=i; 
     do 
     { 
      s[y]=toupper(s[y]); 
      y++; 
     }while(s[y]!='/'); 
     break; 
    } 

} 
cout << s; 
} 

들에 경고 나 givning 그것의, 실제로 프로그램이 처음에 C로했다 fopen을

Error 1 error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 

warning C4018: '<' : signed/unsigned mismatch 

및 오류 및 나는 지금 C++로하고있다.

도움 주셔서 감사합니다.

+2

새로운 버전의 MSVC의 동작 일뿐입니다. 안전하지 않은 함수를 계속 사용하려면 파일의 처음에'#define _CRT_SECURE_NO_WARNINGS'을 추가하십시오. 경고와 관련해서는'strlen'이 서명 된 int가 아닌 signed int를 반환하기 때문에 경고를 피하기 위해'int i'를'unsigned int i'로 만들 수 있습니다. –

+0

C++로 전환하려면 먼저 C++ 프로그램을 작성하십시오. 예 : fopen 대신 std :: ifstream을 사용합니다. – sfrehse

+0

감사합니다. @Govind 내가 시도해 보겠습니다. – Fahad

답변

2

새로운 버전의 MSVC의 동작 일뿐입니다. 안전하지 않은 기능을 계속 사용하려면 파일 시작 부분에 #define _CRT_SECURE_NO_WARNINGS을 추가하십시오.

경고와 관련하여 strlen은 부호가있는 int가 아닌 부호없는 int를 반환하므로 경고를 피하기 위해 int iunsigned int i으로 만들 수 있습니다.