什么是C中“for line in sys.stdin:”的替换?

时间:2014-01-07 15:01:51

标签: python c

我被要求将python程序转换为C程序.Python程序包含我无法转换的循环语句。

for line in sys.stdin:
    <Some Code>

我正在寻找它在C.中的替代。我认为以下代码可能有用,但我对此表示怀疑。

char A[100]
while(1)
A=gets();

尽量详细说明。

2 个答案:

答案 0 :(得分:1)

我第二次约阿希姆的回应:

char A[100]; /* Your code misses the semicolon here. */

while(fgets(A, sizeof A, stdin) != NULL)
{
  /* process A here */
}

请注意,这仅限于100个字符的行长度,Python代码不受此限制。

如果您拥有它,请改用getline(),它没有长度限制。

答案 1 :(得分:0)

您可以选择多种选择:

int fgetc(FILE *stream)
char *fgets(char *s,int n,FILE *stream)
int getc(FILE *stream)
size_t fread(void *ptr,size_t size,size_t nobj,FILE *stream)

你不能使用你刚给出的代码:

1.code from python means get from stdin
2.with no limits of 100 characters.