永发信息网

C++ 输入输出

答案:2  悬赏:40  手机版
解决时间 2021-07-17 22:27
  • 提问者网友:呐年旧曙光
  • 2021-07-17 15:32

在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;
}

最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-07-17 15:48
判断字符串结束,最好用getchar()!='\0'
全部回答
  • 1楼网友:鸠书
  • 2021-07-17 16:54

#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; }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯