标题:一个小问题,怎么让这个程序不以读入换行符结束,而是以EOF结尾
取消只看楼主
吕宏
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2016-4-12
结帖率:86.67%
已结贴  问题点数:20 回复次数:1 
一个小问题,怎么让这个程序不以读入换行符结束,而是以EOF结尾
#include <stdio.h>
#include <stdlib.h>
typedef struct String String;
struct String
{
char ch;
String *next;
};
void SaveSring(String ** head);
void PrintString(String *head);
void SaveToArray(String *head);
int main(void)
{
String *head = NULL;
printf("Please input  a string\n");
SaveSring(&head);
PrintString(head);
SaveToArray(head);
return 0;
}
void SaveSring(String ** head)
{
String *current = NULL;
String *previous = NULL;
while(1)
{
current = (String*)malloc(sizeof(String));
if (*head == NULL)
{
 *head = current;
}
if (previous != NULL)
previous->next = current;
previous = current;
current->next = NULL;
scanf("%c", &current->ch);

 if (current->ch =='\n')
 
 {
current->ch = '\0';
current->next = NULL;
break;

}
}
}
void PrintString(String *head)
{
while (head != NULL)
{
printf("%c",head->ch);
head = head->next;
}
printf("\n");
printf("\n");
printf("\n");
}

void SaveToArray(String *head)
{
int cnt;
String *temp = head;
for(cnt = 1; temp->next != NULL;)
{
temp = temp->next;
cnt=cnt+1;
}
char string[100];
for (int i = 0;i<cnt;++i)
{
string[i] = head->ch;
head = head->next;
}
  puts(string);
  printf("\n");
}
怎么让这个程序不以读入换行符结束,而是以EOF结尾
搜索更多相关主题的帖子: previous current include return 换行符 
2016-06-07 09:54
吕宏
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2016-4-12
得分:0 
scanf("%c", &current->ch);

 if (current->ch =='\n')
 
 {
current->ch = '\0';
current->next = NULL;
break;

}
应该是这一段代码的问题
2016-06-07 09:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-465667-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.422323 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved