在C語言中,scanf
函數(shù)用于從標(biāo)準(zhǔn)輸入(通常是鍵盤)讀取數(shù)據(jù)
#include<stdio.h>
int main() {
char *names[3]; // 定義一個(gè)指針數(shù)組,用于存儲(chǔ)字符串
for (int i = 0; i < 3; i++) {
names[i] = malloc(100); // 為每個(gè)指針分配內(nèi)存空間
printf("請(qǐng)輸入第%d個(gè)名字:", i + 1);
scanf("%s", names[i]); // 使用scanf讀取字符串
}
// 打印輸入的名字
for (int i = 0; i < 3; i++) {
printf("第%d個(gè)名字是:%s\n", i + 1, names[i]);
}
// 釋放內(nèi)存
for (int i = 0; i < 3; i++) {
free(names[i]);
}
return 0;
}
#include<stdio.h>
int main() {
int n, *numbers;
printf("請(qǐng)輸入整數(shù)的個(gè)數(shù):");
scanf("%d", &n);
numbers = (int *)malloc(n * sizeof(int)); // 為整數(shù)分配內(nèi)存空間
for (int i = 0; i < n; i++) {
printf("請(qǐng)輸入第%d個(gè)整數(shù):", i + 1);
scanf("%d", &numbers[i]); // 使用scanf讀取整數(shù)
}
// 打印輸入的整數(shù)
for (int i = 0; i < n; i++) {
printf("第%d個(gè)整數(shù)是:%d\n", i + 1, numbers[i]);
}
// 釋放內(nèi)存
free(numbers);
return 0;
}
#include<stdio.h>
int main() {
float *scores;
int n;
printf("請(qǐng)輸入成績(jī)的個(gè)數(shù):");
scanf("%d", &n);
scores = (float *)malloc(n * sizeof(float)); // 為浮點(diǎn)數(shù)分配內(nèi)存空間
for (int i = 0; i < n; i++) {
printf("請(qǐng)輸入第%d個(gè)成績(jī):", i + 1);
scanf("%f", &scores[i]); // 使用scanf讀取浮點(diǎn)數(shù)
}
// 打印輸入的成績(jī)
for (int i = 0; i < n; i++) {
printf("第%d個(gè)成績(jī)是:%.2f\n", i + 1, scores[i]);
}
// 釋放內(nèi)存
free(scores);
return 0;
}
注意:在使用scanf
讀取字符串時(shí),需要確保輸入的字符串長(zhǎng)度不超過分配的內(nèi)存空間。在實(shí)際編程中,為了避免緩沖區(qū)溢出,可以使用fgets
函數(shù)代替scanf
讀取字符串。