в данном файле имеются так же символы "ff" , при считывании которых должны оставаться пустые ячейки в массиве. Проблема у меня в составлении условии при котором это должно происходить, вообщем если заменяю "ff" в txt на 0 всё отлично работает, но вот с форматом char у меня проблемы, я просто не знаю как с ним работать, вообщем вот с 0 вместо "ff" , как условие задать чтобы и с "ff" работало?
main()
{
int a,b;
int c;
int fat[10][10];
printf ("inicializaciy massiva iz fila txt\n");
FILE *filetxt;
filetxt=fopen("FAT.txt","r");
for (a=0;a<=9;)
{
for (b=0;b<=9;b++)
{
fscanf (filetxt,"%2d",&c);
if (!(c=="0"))
{
fat[a][b]=c;
printf("%2d ",fat[a][b]);
}
}
a++;
printf ("\n");
}
fclose(filetxt);
printf ("\n%d\n",fat[5][1]);
system("PAUSE");
return 0;
}
Другие языки программирования и технологии
Си. Программа читает файл txt и заполняет находящимися там числами массив, но
> при считывании которых должны оставаться пустые ячейки в массиве.
Что значит "пустые ячейки в массиве"? Если массив не инициализирован какими-нибудь начальными значениями, то в этих "ячейках" будет "мусор".
Как вариант:
#include <stdio.h>
#include <stdlib.h>
main() {
int a,b;
char s[12];
int c;
int fat[10][10] = { 0 };
printf ("inicializaciy massiva iz fila txt\n");
FILE *filetxt;
filetxt=fopen("FAT.txt","r");
for (a = 0; a <= 9; a++) {
for (b = 0; b <= 9; b++) {
fscanf(filetxt, "%s", s);
if (sscanf(s, "%d", &c) > 0) {
printf("%2d ", c);
fat[a][b] = c;
} else {
printf("-- ");
// КАКАЯ-ТО ФИГНЯ В ФАЙЛЕ, СОВСЕМ НЕ ЧИСЛО
}
}
printf ("\n");
}
fclose(filetxt);
printf ("\n%d\n",fat[5][1]);
system("PAUSE");
return 0;
}
Что значит "пустые ячейки в массиве"? Если массив не инициализирован какими-нибудь начальными значениями, то в этих "ячейках" будет "мусор".
Как вариант:
#include <stdio.h>
#include <stdlib.h>
main() {
int a,b;
char s[12];
int c;
int fat[10][10] = { 0 };
printf ("inicializaciy massiva iz fila txt\n");
FILE *filetxt;
filetxt=fopen("FAT.txt","r");
for (a = 0; a <= 9; a++) {
for (b = 0; b <= 9; b++) {
fscanf(filetxt, "%s", s);
if (sscanf(s, "%d", &c) > 0) {
printf("%2d ", c);
fat[a][b] = c;
} else {
printf("-- ");
// КАКАЯ-ТО ФИГНЯ В ФАЙЛЕ, СОВСЕМ НЕ ЧИСЛО
}
}
printf ("\n");
}
fclose(filetxt);
printf ("\n%d\n",fat[5][1]);
system("PAUSE");
return 0;
}
Евгений Полевщиков
Вариант без использования строк http://pastebin.com/Psn9AiM3
Паша Быковский
Спасибо! Как раз то что нужно, особенно инициализация массива 0 в самом начале. Сейчас пишу программу в которую вводится номер стартовой ячейки в массиве, по содержанию этой ячейки определяется следующая ячейка массива, а окончание как раз таки совпадает с 0, что очень удобно. В последствие выводится все задействованные ячейки массива, и им сопоставляются массив из другого txt файла, но уже с буквами, и собирается какое-то слово.
Я бы сделал так
#include
void main() {
int ch;
int my_ch = 32 // замена ff на пробел к примеру
int f_ch = 102 // код символа f
ch = getchar();
while( ch != -1 ) { // пока входной файл не кончился
if(ch != f_ch) putchar(ch);
else ch = getchar(); // проверем следущий символ на f_ch
if(ch == f_ch) putchar(my_ch); // выводим пробел
ch = getchar();
}
}
Записать это в файл a.c и скомпилировать
Запуск из консоли
a.exe < FAT.txt
#include
void main() {
int ch;
int my_ch = 32 // замена ff на пробел к примеру
int f_ch = 102 // код символа f
ch = getchar();
while( ch != -1 ) { // пока входной файл не кончился
if(ch != f_ch) putchar(ch);
else ch = getchar(); // проверем следущий символ на f_ch
if(ch == f_ch) putchar(my_ch); // выводим пробел
ch = getchar();
}
}
Записать это в файл a.c и скомпилировать
Запуск из консоли
a.exe < FAT.txt
Похожие вопросы
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- помогите пожалуйста проверить код на языке си, программа работает неверно - не выдает сумму массива Z
- MASM32 случайные числа, , массив
- Дан линейный массив чисел N. N вводит пользователь. Вывести все простые числа массива.
- Дан файл целых чисел. Создать два новых файла, первый из которых содержит положительные числа из исходного файла...
- Скопировать из текстового файла .txt часть строк c 1 по 3000, затем с 3000 по 6000 и так до конца файла.
- Помогите с Си. Вопрос по заданию (насчет типизированной функции, которая должна возвращать массив)
- bat файл, как с помощью батника заменить строку в файле. txt
- Помогите с программой на си! Программа в описании
- Вопрос по дробления программы на файлы и классам. На данных условиях, как будет выглядеть структуризация?