昨天看到关注的一个微信主页上面出了一个小的编程题,今天早晨起来没事,就做了一下。问题其实很简单,但是我觉得正好可以借此机会回顾一下C文件读取的概念和方法,所以就做了一下,也记录一下。
题目
有一个文件data.txt,里面有如下数据:
[A]0123 [B]0003 [C]1000 [D]0056
需要输出成如下格式:
A 123
B 3
C 1000
D 56
我的程序
源代码:
/*
* =====================================================================================
*
* Filename: data.c
*
* Description: 处理data.txt里面的数据
*
* Version: 1.0
* Created: 02/21/2014 06:18:45 PM
* Revision: none
* Compiler: gcc
*
* Author: Allan Ni (Allan), allan.vim@gmail.com
* Organization: https://niyanchun.com
*
* =====================================================================================
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXLINE 1024
int main() {
char str[MAXLINE];
FILE *fp;
if ((fp = fopen("data.txt", "r")) == NULL) {
printf("Open file error\n");
return -1;
}
if (fgets(str, MAXLINE, fp) != NULL) {
char *p = str;
char ch, temp[5];
while ((*p) != '\n') {
if ((*p) == '[') {
ch = *(p + 1);
strncpy(temp, p+3, 4);
temp[4] = '\0';
printf("%c %d\n", ch, atoi(temp));
p += 7;
}
else {
p++;
}
}
}
return 0;
}
评论已关闭