阅读量:0
在C语言中,scanf
函数用于从标准输入(通常是键盘)读取数据
- 使用指针数组存储字符串:
#include<stdio.h> int main() { char *names[3]; // 定义一个指针数组,用于存储字符串 for (int i = 0; i < 3; i++) { names[i] = malloc(100); // 为每个指针分配内存空间 printf("请输入第%d个名字:", i + 1); scanf("%s", names[i]); // 使用scanf读取字符串 } // 打印输入的名字 for (int i = 0; i < 3; i++) { printf("第%d个名字是:%s\n", i + 1, names[i]); } // 释放内存 for (int i = 0; i < 3; i++) { free(names[i]); } return 0; }
- 使用指针数组存储整数:
#include<stdio.h> int main() { int n, *numbers; printf("请输入整数的个数:"); scanf("%d", &n); numbers = (int *)malloc(n * sizeof(int)); // 为整数分配内存空间 for (int i = 0; i < n; i++) { printf("请输入第%d个整数:", i + 1); scanf("%d", &numbers[i]); // 使用scanf读取整数 } // 打印输入的整数 for (int i = 0; i < n; i++) { printf("第%d个整数是:%d\n", i + 1, numbers[i]); } // 释放内存 free(numbers); return 0; }
- 使用指针数组存储浮点数:
#include<stdio.h> int main() { float *scores; int n; printf("请输入成绩的个数:"); scanf("%d", &n); scores = (float *)malloc(n * sizeof(float)); // 为浮点数分配内存空间 for (int i = 0; i < n; i++) { printf("请输入第%d个成绩:", i + 1); scanf("%f", &scores[i]); // 使用scanf读取浮点数 } // 打印输入的成绩 for (int i = 0; i < n; i++) { printf("第%d个成绩是:%.2f\n", i + 1, scores[i]); } // 释放内存 free(scores); return 0; }
注意:在使用scanf
读取字符串时,需要确保输入的字符串长度不超过分配的内存空间。在实际编程中,为了避免缓冲区溢出,可以使用fgets
函数代替scanf
读取字符串。