我试图让我的程序将输入到我程序中的单词输出到屏幕上。到目前为止,我的程序根据我输入的内容输出随机字符。例如,如果我输入单词hey,它会在屏幕上输出%。如何解决这个问题,在屏幕上输出单词嘿?我的代码在下面。
#include <stdio.h>
#include<conio.h>
int main(){
int word;
char cont;
for (;;){
int countword = 0;
int countpunct = 0;
printf("\nEnter the String: ");
while ((word = getchar()) != EOF && word != '\n'){
if (word == ' ' || word == '.' || word == '?' || word == '!' || word == '(' || word == ')' || word == '*' || word == '&'){
countword++;
}
if (word == '.' || word == '?' || word == '!' || word == '(' || word == ')' || word == '*' || word == '&'){
countpunct++;
}
}
printf("%c", word);
printf("\nThe number of words is %d.", countword);
printf("\nThe number of punctuation marks is %d.", countpunct);
printf("\nContinue? Y/N?");
scanf("%c", &cont);
if (cont != 'y' && cont != 'Y'){
return 0;
}
}
}
答案 0 :(得分:1)
您正在&
使用printf()
。它将打印变量的地址(而不是其值)!
请改为:
printf("%c", word); // notice there is no &
除此之外,我注意到你的代码中有一些值得一提的东西:
word
被声明为int
,但会被读取并打印为char
。为什么呢?
答案 1 :(得分:1)
while
循环可确保word
在退出EOF
循环时保持\n
或while
。
while ((word = getchar()) != EOF && word != '\n')