在C++ 中输入CTRL+Z 等于多少难道不等于EOF-1吗?
下面是我写的一段从终端读入一个字符串的函数,尽管在C中scanf("%s",);在c++中有
std::cin >> s; 但是这是我手写一段,在TC下可以完成, 但在VC下却不行, C++ 不是兼容C吗? 以下是代码:
#include <stdio.h>
#include <string.h>
#define EOF -1
int getstr(char *string)
{
signed char c;
int i = 0;
c = getchar();
while(c == ' '|| c == '\t' || c == '\n' )
{
c = getchar();
}
if(c == EOF)
return 0;
string[i] = c;
while((c = getchar())!= EOF && c != ' ' && c != '\t' && c != '\n' )
{
string[++i] = c;
}
string[++i] = '\0';
return i ;
}
int main()
{
char str[100];
while( getstr(str) > 0)
{
printf("%s\n", str);
}
return 0;
}