fgets汉字问题

#include<stdio.h>
#include <stdlib.h>
#define N 10

int main(int argc, char *argv[])
{
	FILE *fp;
	char str[N];
	fp = fopen("in.txt", "r");
	if (fp == NULL)
	{
		return 1;
	}
	while (!feof(fp))
	{
		fgets(str, N, fp);
		printf("%s", str);
		//puts(str);
	}
	fclose(fp);
	return 0;
}


in.txt

车窗外恋人相拥
还在难舍难离
汽笛声突然响起
那姑娘满眼焦急
不觉中下起雨来
在黄昏的站台
她终于上了列车
却一直望向窗外
当列车徐徐开动掠过蓝色站牌
我看见她难过的脸
如此苍白
伴随雨点敲击车窗她的泪流下来
我赶紧转过头去让我视线离开
不知是甜蜜的伤感还是无奈
天色暗了下来
人们开始了等待
我想起多年以前
像今天的画面
以为告别还会再见
哪知道一去不还


输出:车窗外恋?
讼嘤?

puts换printf则正常输出。

初步怀疑与刷新缓冲区有关。

当然fgets 的buffer size设置足够大是可以解决问题的。

希望有人解答!



posted @ 2016-03-12 22:07  N3verL4nd  阅读(220)  评论(0编辑  收藏  举报