Stack Overflow на русском Asked by Fenix FVE on February 23, 2021
Допустим есть файл. Мне нужно получить все данные из него в формате масива строк (строка не длинее 80 символов).
Я решил попрбывать вывести содержимое масива в консоль. С латиницей всё отлично работает, но русские букву превращаются в случайные символы. Как это можно исправить?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
char** readFile(char* filepath, int& strCount) {
FILE* fp;
fp = fopen(filepath, "r");
if (fp == NULL) return NULL;
strCount=0;
char* buffer = (char*)malloc(sizeof(char) * 80);
for (; fgets(buffer, 80, fp); strCount++);
fseek(fp, 0L, SEEK_SET);
char** strArray = (char**)malloc(sizeof(char*) * strCount);
for (int i = 0; i < strCount; i++) {
*(strArray + i) = (char*)malloc(sizeof(char) * 81);
}
for (int i = 0; i < strCount; i++) {
fgets(strArray[i], 80, fp);
int temp = strlen(strArray[i]);
strArray[i][temp - 1] = '';
}
fclose(fp);
return strArray;
}
int main() {
setlocale(LC_ALL, "Russian");
char filepath[] = "./Test_file/lab7.txt";
int n = 0;
char** ArrayStr = readFile(filepath, n);
for (int i = 0; i < n; i++) {
printf("%sn", ArrayStr[i]);
}
return 0;
}
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP