我尝试过很多东西但没有结果。我使用<cstdio>
但没有帮助。
我再次尝试使用fget,但没有得到任何好结果。我使用在线编译器http://rextester.com/l/cpp_online_compiler_gcc
#include <iostream>
#include <string.h>
#include<stdio.h>
#include<cstdio>
using namespace std;
int main() {
bool check;
char sntn[100],word[100],test[20];
gets (word);
gets (sntn);
int j=0,count=0,val,k;
check=true;
while(check) {
for(; sntn[j]==32; j++) {
test[k]=sntn[j];
k++;
}
}
k=0;
j+=1;
val=strcmp(test,word);
if(val==0)
count++;
if(sntn[j]==32) {
j+=1;
check=true;
}
if(sntn[j]=='\0')
check=false;
cout<<endl<<count;
return 0;
}
错误:
source_file.cpp: In function ‘int main()’:
source_file.cpp:9:11: error: ‘gets’ was not declared in this scope
gets (word);
^
答案 0 :(得分:2)
std::gets()
已在C ++ 11中弃用,在C ++ 14中已删除。在线编译器必须使用该语言的C ++ 14或更高版本。
更重要的是,gets
已知是一个安全问题。即使编译器支持它也不要使用它。请改用std::fgets()
。
除非您需要使用<cstdio>
标题中的函数,否则std::string
还有更好的选择。
std::getline()
std::istream::getline()
这些链接包含让您入门的示例代码。