これが私のコードです:
#include
#include
int main(int argc, char *argv[]) {
const char **keywords;
const char **values;
char line[50];
char *prop, *val, *tmp;
int i = 0, j = 0;
FILE *creds = fopen("/path/to/file.props", "r");
keywords = malloc(5);
values = malloc(5);
while (fgets(line, LINE_SIZE, creds) != NULL) {
if (line[strlen(line) - 1] == '\n')
line[strlen(line) - 1] = '\0';
prop = line;
while(*(prop++) != '=') {
i++;
}
tmp = prop;
prop = malloc(i + 1);
strncpy(prop, line, i);
prop[i] = '\0';
keywords[j] = prop;
val = malloc(strlen(line) - strlen(prop));
strcpy(val, tmp);
values[j++] = val;
i = 0;
}
printf("%s %s %s %s %s\n", keywords[0], keywords[1], keywords[2], keywords[3], keywords[4]);
}
今、file.props
その内容があります:
hostaddr=127.0.0.1
port=5432
user=username
password=mypass
dbname=my_db_name
プログラムを実行すると、次のようになります。
@raddr ポート ユーザー パスワード dbname
行にコメントを付けて適切にvalues[j++] = val
インクリメントj
すると、出力は次のようになります。
hostaddr ポート ユーザー パスワード dbname 。
誰かが私を導き、私のコードの問題を示すことができますか?