#include<stdio.h>
main() {
char ch,a[10];
int i=0;
printf("enter text,press <return> to end!\n");
while(ch!='\n') {
ch=getchar();
a[i]=ch;
i++;
}
i=i-1;
a[i]='\0';
printf("%s",a);
}
这里我声明了一个最大大小为10的数组'a'。我使用while循环读取字符并将它们放在数组'a'中,最后代码打印出我输入的文本
答案 0 :(得分:3)
我已经完成了对此版本的更多检查。
12-27 18:53:50.905: E/MediaPlayer(15688): internal/external state mismatch corrected
12-27 18:53:50.915: E/MediaPlayer(15688): error (100, 0)
12-27 18:53:51.385: E/AndroidRuntime(15688): FATAL EXCEPTION: main
12-27 18:53:51.385: E/AndroidRuntime(15688): Process: com.example.gent3, PID: 15688
12-27 18:53:51.385: E/AndroidRuntime(15688): java.lang.RuntimeException: failure code: -32
12-27 18:53:51.385: E/AndroidRuntime(15688): at android.media.MediaPlayer.invoke(MediaPlayer.java:710)
12-27 18:53:51.385: E/AndroidRuntime(15688): at android.media.MediaPlayer.selectOrDeselectInbandTrack(MediaPlayer.java:3067)
12-27 18:53:51.385: E/AndroidRuntime(15688): at android.media.MediaPlayer.selectOrDeselectTrack(MediaPlayer.java:3056)
12-27 18:53:51.385: E/AndroidRuntime(15688): at android.media.MediaPlayer.selectTrack(MediaPlayer.java:3014)
12-27 18:53:51.385: E/AndroidRuntime(15688): at com.example.gent3.TV$18.onClick(TV.java:1640)
12-27 18:53:51.385: E/AndroidRuntime(15688): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
答案 1 :(得分:0)
这是非常不安全的,因为你有一个静态声明的10 char
个数组。如果用户输入第11个char
,您将遇到缓冲区溢出。您也应该检查i
中的while
:
while(ch!='\n' && i < 9) {
ch=getchar();
a[i]=ch;
i++;
}
a[i]='\0';
printf("%s",a);