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++로하고있다.
도움 주셔서 감사합니다.
새로운 버전의 MSVC의 동작 일뿐입니다. 안전하지 않은 함수를 계속 사용하려면 파일의 처음에'#define _CRT_SECURE_NO_WARNINGS'을 추가하십시오. 경고와 관련해서는'strlen'이 서명 된 int가 아닌 signed int를 반환하기 때문에 경고를 피하기 위해'int i'를'unsigned int i'로 만들 수 있습니다. –
C++로 전환하려면 먼저 C++ 프로그램을 작성하십시오. 예 : fopen 대신 std :: ifstream을 사용합니다. – sfrehse
감사합니다. @Govind 내가 시도해 보겠습니다. – Fahad