色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c mysql導出到文件怎么打開

方一強2年前11瀏覽0評論

C MySQL導出到文件怎么打開?

在開發過程中,有時需要把C程序中的MySQL查詢結果導出到文件中,但是導出后的文件如果直接打開會出現亂碼的情況。所以需要在打開文件時加入一些處理操作。

下面是示例代碼:

#include#include#include#define FILENAME "result.txt"
int main()
{
FILE *fp;
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
mysql_init(&mysql);
if (!mysql_real_connect(&mysql,"localhost","root","","test_db",0,NULL,0)) {
printf("cannot connect to database: %s\n",mysql_error(&mysql));
exit(1);
}
if (mysql_query(&mysql,"SELECT * FROM student")) {
printf("Cannot execute SQL query: %s\n",mysql_error(&mysql));
exit(1);
}
result = mysql_store_result(&mysql);
fp = fopen(FILENAME, "w");
if (fp == NULL) {
printf("Cannot open file %s\n", FILENAME);
exit(1);
}
while ((row = mysql_fetch_row(result))) {
fprintf(fp, "%s\t%s\n", row[0], row[1]);
}
fclose(fp);
mysql_free_result(result);
mysql_close(&mysql);
// 打開文件并進行處理
fp = fopen(FILENAME, "r");
if (fp == NULL) {
printf("Cannot open file %s\n", FILENAME);
exit(1);
}
char buf[1024];
int len;
// 讀取文件內容到buf中
len = fread(buf, sizeof(char), sizeof(buf), fp);
fclose(fp);
// 統計文件中的中文字符數
int chineseCount = 0;
for (int i = 0; i< len - 1; i++) {
if ((buf[i] & 0x80) && (buf[i + 1] & 0x80)) {  // 如果是中文字符,ASCII碼高位都是1
chineseCount++;
i++;
}
}
printf("The file has %d Chinese characters.\n", chineseCount);
return 0;
}

代碼中的“result.txt”是要導出的文件名。在寫入數據后,我們用fopen函數將文件以只讀方式再次打開,然后把文件內容讀入到buf中,最后統計buf中中文字符的個數。注意要在二進制模式下讀寫文件,這樣可以防止在不同操作系統上的兼容問題。