Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2011, 18:39   #1
kiruka4
 
Регистрация: 12.10.2010
Сообщений: 6
По умолчанию поменять местами первое слово со вторым.. 3 и 4 5 и 6 7 и 8

Добрый день. Учимся сейчас программировать в UNIX. Такая вот проблема:

Задание: поменять местами первое слово со вторым.. 3 и 4 5 и 6 7 и 8

Я написал вот такой вот код:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
int ldr2,ldr2new;
int main(int argc,char *argv[])
{
ldr2=open("lr2.txt",O_RDONLY);
ldr2new=creat("lr2new.txt",O_RDWR);
char a[200];
char b[200];
int i=0;int j=0;
char buff; 
while (read(ldr2,&buff,1)>0){
do {(read(ldr2,&buff,1));
    a[i]=buff;i++;}
while (buff!='\n');

do {(read(ldr2,&buff,1));
    b[j]=buff;j++;}
while (buff!='\n');

write(ldr2new,b,strlen(b));
write(ldr2new,a,strlen(a));
printf("%s",a);
printf("%i",i);
i=0;
j=0;}
close(ldr2);
close(ldr2new);
return (0);}
Но он не коректно выводит. А если перед первым и третим словом поставлю лишний пробел - то все ок. Кто-то знает в чем может быть проблема?
p.s. А ,еще, если написать while (buff!='\n');,то вообще выдает ошибку.
Спасибо
kiruka4 вне форума Ответить с цитированием
Старый 03.01.2012, 13:26   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

kiruka4, а вы не могли бы описать алгоритм того, что вы проделали и того что вы собираетесь проделать.

Вы считываете, зачем-то, строки целиком, а нужно слова. Причем самый первый символ вы затираете:
Код:
while (read(ldr2,&buff,1)>0){
do {(read(ldr2,&buff,1));
    a[i]=buff;i++;}
то есть в массив a[i] самый первый символ из файла не попадёт.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять местами первое и последнее слова в предложении. alex.dadaev Помощь студентам 0 17.03.2011 09:39
(Си)Поменять местами наибольшее и наименьшее слово в предложении kilgoreq Помощь студентам 0 02.12.2010 20:17
С++. Поменять местами средние столбцы со вторым и предпоследним Bonne Помощь студентам 0 10.02.2010 19:52
Дан рядок слов,поменять 1 слово со 2 местами, 2 с 3 и тд. shpack Помощь студентам 0 13.01.2010 00:44