用c语言写:请编写程序:主函数从命令行读入一个文件名,然后调用函数getline从文件中读入一个字符串放到字符数组str中(字符个数最多为100个);函数返回字符串的长度。在主函数中输出字符串及其长度
时间: 2024-02-18 19:02:07 浏览: 122
scanf-格式控制字符串-C语言教程——浙大
```c
#include <stdio.h>
#include <stdlib.h>
int getline(char *str, int max_len, FILE *fp);
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("Usage: %s filename\n", argv[0]);
return 1;
}
char str[101];
FILE *fp = fopen(argv[1], "r");
if (!fp) {
printf("Failed to open file: %s\n", argv[1]);
return 1;
}
int len = getline(str, 100, fp);
printf("String: %s\nLength: %d\n", str, len);
fclose(fp);
return 0;
}
int getline(char *str, int max_len, FILE *fp) {
int len = 0;
char c;
while ((c = fgetc(fp)) != EOF && c != '\n' && len < max_len) {
str[len++] = c;
}
str[len] = '\0';
return len;
}
```
这个程序会从命令行参数中读入一个文件名,然后打开文件并调用函数 `getline` 从文件中读入一行字符串放到字符数组 `str` 中。函数 `getline` 返回字符串的长度。在主函数中输出字符串及其长度。注意,字符数组的大小为100,因此字符串的长度最多为99个字节。如果文件名不存在或无法打开,程序会输出错误信息并返回1。
阅读全文