Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Работа со строками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Односвязный, двусвязный список, стек, очередь http://www.cyberforum.ru/cpp-beginners/thread18111.html
В общем, всем кто нуждается. Баггов вы не найдете. Односвязный список #include <iostream> #include <windows.h> using namespace std; class Node {
C++ Помогите !!!! Помогите решить!!!!! Я новичёк http://www.cyberforum.ru/cpp-beginners/thread18069.html
C++ Написать класс Graph
Здравствуйте! Помогите пожалуйста, разобраться с лабой по С/С++ написанной для BC3.1 и преподавателя 1959 г. выпуска (это я к тому, что он без void main() работы не принимает). Прожка такая:...
Найти K-ю цифру в строке натуральных чисел C++
Сразу о главном: дано натуральное K. Найти K-ю цифру в строке натуральных чисел 123456789101112131415.... Что с этим счастьем делать, ума не приложу((( Помогите, пожалуйста, если кто может.
C++ Программа на С http://www.cyberforum.ru/cpp-beginners/thread18057.html
Написать программу, подсчитывающую число прожитых Вами дней. Программа должна предложить Вам ввести дату вашего рождения, текущую дату и выдать сообщение, что Вы живете такой-то день. я это...
C++ Возможно ли в одном case'е проверить, является ли символ буквой латинского алфавита? помогите,плз разобраться с вопросиком. возможно ли в одном case'е проверить является ли символ буквой латинского алфавита? т.е. сделать аналогично этому: if ((a>='a') && (a<='z')) ? если... подробнее

Показать сообщение отдельно
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.12.2008, 23:49
этот участок можно заменить если компилятор не тянет ?:
C++
1
    fprintf(tfp, "%03d:%s", nl, (state == OUT ? line : "\n"));
на любой из этих
C++
1
2
3
4
    if (state == OUT)
        fprintf(tfp, "%03d:%s", nl, line);
    else
        fprintf(tfp, "%03d:\n", nl);
C++
1
2
3
4
5
    fprintf(tfp, "%03d:", nl);
    if (state == OUT)
        fprintf(tfp, "%s", line);
    else
        fprintf(tfp, "\n");
у меня когда я компилировал на борланде 90 года, вместо строк вообще всех выводился nil (ну типа 001:nil и тд), потому что борланд не понимает ?: внутри fprintf'a, хотя это соответствует стандарту 89 года

в lcc который я показывал тут, скомпилировалось всё нормально и в файл она нормально всё записала

из файла

Код
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
Код
001:a
002:
003:c
004:
005:
006:f
007:
008:
009:
010:j
011:
012:
013:
014:
015:o
016:
017:
018:
019:
020:
021:u
Добавлено через 1 час 48 минут 44 секунды
выяснил что происходит, короче bc3.1 поддерживает оператор ?:, но

C++
1
    fprintf(tfp, "%03d:%s", nl, (state == OUT ? line : "\n"));
содержит 2 аргумента после строки формата, если оставить один то всё работает (то есть нумерацию строк убрать, она будет распечатывать на выбор), то есть bc3.1 оператор знает но не тянет его так как надо

потому сработает вариант

C++
1
2
    fprintf(tfp, "%03d:", nl);
    fprintf(tfp, "%s", state == OUT ? line : "\n");
под виндой всё ок
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru