1
我已经编写了一个从用户处获取文本文件的程序。每行打印60个字符
那么它应该打印60个字符,然后在时间上开始一个新行,然而,即使它的工作原理
有些话超过该上限,然后将其切断字到一半,然后再次启动
在一条新的线上。所以我需要我的程序基本上找出
这个词是否适合60个字符的限制,所以没有单词被分割。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char ch, file_name[25];
FILE *fp;
printf("Enter file name: \n");
scanf("%24s" ,file_name);
if ((fp = fopen(file_name,"r")) == NULL){
perror("This file does not exist\n");
exit(EXIT_FAILURE);}
int c, count;
count = 0;
while ((c = fgetc(fp)) != EOF) {
if (c == '\n')
putchar(' ');
else
putchar(c);
count++;
if (count == 60) {
putchar('\n');
count = 0;
}
}
putchar('\n');
fclose(fp);
}
无关,但你的代码有一个缓冲区溢出 – mooiamaduck
“无字拆了”。好的,所以你需要写下一个字是什么。那么什么定义了一个词的开始和结束。然后,您可以识别第60个字符是否在单词内。 –
..或者写下一个字不是。一个定义可能是“一个词不包含空格”。 –