Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / что случилось с stdin и stdout ? / 6 сообщений из 6, страница 1 из 1
11.08.2020, 22:42
    #39988790
andron81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что случилось с stdin и stdout ?
Всем привет.
а может кто объяснить , что мне за туфту выводит на экран ?
я сделал 2 файла test.txt и test2.txt, в один файл внес abcd, а в другой xyz .
в параметрах ввел эти два файла .
по идее мне в stdout(то есть на экран) должно вывести склеенный текст test.txt и test2.txt
так вот он читает в точном количестве содержания символов в обоих файлах, однако все
время выводится символ с кодом 1. отладчиком посмотрел что дает цикл while (c = getc(ifp) != EOF)
и действительно все время переменная "c" дает 1.

а в цикле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

void filecopy(FILE* ifp, FILE* ofp)
{
	int c;
	while (c = getc(ifp) != EOF)
		putc(c, ofp);
}

int main(int argc, char* argv[])
{

	FILE* fp;
	if (argc == 1) filecopy(stdin, stdout);
	else
	while (--argc>0)
		if ((fp = fopen(*++argv, "r")) == NULL) {
			printf("cat: can't open %s\n", *argv);
			return 1;
		}
		else {
			filecopy(fp, stdout);
			fclose(fp);
		}
	return 0;
}
...
Рейтинг: 0 / 0
11.08.2020, 23:43
    #39988795
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что случилось с stdin и stdout ?
andron81
Код: plaintext
1.
c = getc(ifp) != EOF


У присвоения самый низкий приоритет.
...
Рейтинг: 0 / 0
12.08.2020, 00:04
    #39988797
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что случилось с stdin и stdout ?
andron81,

Ты сам учишься программировать? Зачем столько сайд-эффектов в одном исходнике?
...
Рейтинг: 0 / 0
12.08.2020, 06:20
    #39988840
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что случилось с stdin и stdout ?
andron81,

Зачем заново изобретать cat ?
...
Рейтинг: 0 / 0
12.08.2020, 06:56
    #39988846
andron81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что случилось с stdin и stdout ?
Anatoly Moskovsky
andron81
Код: plaintext
1.
c = getc(ifp) != EOF


У присвоения самый низкий приоритет.


Эххх, точняк! Вот я валенок. Аж стыдно
Скобки пропускать.
...
Рейтинг: 0 / 0
12.08.2020, 07:00
    #39988847
andron81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что случилось с stdin и stdout ?
mayton
andron81,

Ты сам учишься программировать? Зачем столько сайд-эффектов в одном исходнике?

Это k&r, я коды переписываю и прорабаьываю, а тут выясняется, что перепечатать из книги даже не могу
Чайник я!
Тему можно закрывать
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / что случилось с stdin и stdout ? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]