我有一个包含以下行的文件:
0: 1(ab) 6(a)
1: 3(b) 4(a)
2: 5(a) 3(ab)
我想拆分这些行以获取值,并将它们以某种方式存储在数组或其他东西中。
任何帮助!
More Explanations
0、1、2 是石墨的峰值。
对于第一个峰值 0,我们有两个圆弧 1 和 6,圆括号中的值是圆弧的值。
正如@Adeel 建议的那样,fscanf 似乎可以正常工作:-
#include<stdio.h>
int main()
{
int peak, arc1, arc2;
char v1[100], v2[100];
scanf("%d: %d(%s %d(%s", &peak, &arc1, &v1, &arc2, &v2);
v1[strlen(v1)-1] = 0; // clear the closing parentheses
v2[strlen(v2)-1] = 0; // clear the closing parentheses
printf("%d, %d, %s, %d, %s", peak, arc1, v1, arc2, v2);
}
需要清除,因为字符串被读取 1 太远。如果输入没有任意空格,这将起作用。对于这些情况,可能需要 strtok 等。
测试:-
C:\Users\user\Desktop>test.exe
0: 1(ab) 6(a)
输出 :-
0, 1, ab, 6, a