powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / programa na C
25 сообщений из 40, страница 1 из 2
programa na C
    #33753511
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nado napisati pro. catoraia udaliaet vse comentarii v programe napisonai na iazike C.

naprimer:

Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
#include <stdio.h> 
 
int main(void)
{
    FILE *in, *out;
    char c;
 
    if ( (in=fopen("a.c","rt")) == NULL )
    {
        fprintf(stderr, "Cannot open input file.\n");
        return  1 ;
    }
 
    // sdfasdfdasf   
 
                                                                         
    if ( (out=fopen("b.c","wt")) == NULL )
    {
        fprintf(stderr, "Cannot open output file.\n");
        return  1 ;
    }
                                                                         
 
    /* 
    asdfdasf 
    asdfasdf 
    asdfasdf 
    asdfasdf 
    */
 
    while ((c=fgetc(in)) != EOF) 
    {
        putchar(c);
    }
 
    fclose(in);
    fclose(out);
 
    return  0 ;
}


v rezulitate doljen poluciti:

Код: 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.
29.
30.
31.
32.
#include <stdio.h> 
 
int main(void)
{
    FILE *in, *out;
    char c;
 
    if ( (in=fopen("a.c","rt")) == NULL )
    {
        fprintf(stderr, "Cannot open input file.\n");
        return  1 ;
    }
 
   
                                                                         
    if ( (out=fopen("b.c","wt")) == NULL )
    {
        fprintf(stderr, "Cannot open output file.\n");
        return  1 ;
    }
                                                                         
 
   
    while ((c=fgetc(in)) != EOF) 
    {
        putchar(c);
    }
 
    fclose(in);
    fclose(out);
 
    return  0 ;
}

nado napisati na C, ne C++ .. Help
...
Рейтинг: 0 / 0
programa na C
    #33753536
дед Макар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и в чем трудность?
...
Рейтинг: 0 / 0
programa na C
    #33753549
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) neznaiu kak ...

kak i mogu procitati s faila naprimer desiatuiu stroku?
...
Рейтинг: 0 / 0
programa na C
    #33753560
дед Макар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
читай построчно с самой первой строки и считай их. Только зачем тебе нужна именно десятая строка? А вдруг комментарий на 11-й строке? Читай построчно весь файл, находи первые символы, проверяй их на пренадлежность к комментарию. Если оно - удаляй, нет - читай дальше....
...
Рейтинг: 0 / 0
programa na C
    #33753569
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kak mne citati postrocino, v primere i citaiu posimvolino ... postrocino neznaiu kak ... please previdi primer.
...
Рейтинг: 0 / 0
programa na C
    #33753580
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаешь с файла посимвольно и паралелльно записываешь в файл вывода с отстованием на один символ
1. Если встречается отрытие многострочного комментария, ставишь флаг(skip), что запсывать не надо.
2. Если встречается однострочный комментарий (ставишь флаг, что надо не надо записывать до конца строки)
3. Если встречается закрытие многострочного комментария и стоит флаг(skip) или прочитан символ конца строки и стот флаг (skip_end_of_file), снимешь флаг(skip/skip_endof_file) и ставишь флаг, что надо пропустить 2 символа (типа int skips_simbols=2)

Если стоит флаг skip символ не пишешь
Если стоит флаг skip_end_of_file символ не пишешь
Елси стоит skip_simbols декриментируешь его и символ не пишешь

Примерно так должно работать.
...
Рейтинг: 0 / 0
programa na C
    #33753585
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открываешь требуемый файл для чтения, создаёшь ещё один новый...
Читаешь первый посимвольно и всё, кроме комментариев, пишешь во вновь созданный, потом давишь первый и переименовываешь второй.
Можно, конечно, и ещё несколько вариантов решения придумать...

Чтобы отсечь комменты - пропускаешь (не пишешь во второй файл) все строки (окончания строк), которые начинаются на // (содержат //) и все символы между комбинациями /* */ ...
...
Рейтинг: 0 / 0
programa na C
    #33753590
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Телепатия, однако :)
...
Рейтинг: 0 / 0
programa na C
    #33753591
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gdakak mne citati postrocino, v primere i citaiu posimvolino ... postrocino neznaiu kak ... please previdi primer.

Код: plaintext
fgets
...
Рейтинг: 0 / 0
programa na C
    #33753601
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rebeata .. vi mojete perepisati viseucazanii primer .. dlia polucenia corectogo rezulitata? plz
...
Рейтинг: 0 / 0
programa na C
    #33753608
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, при чтении построчно, алгоритм можно сделать больше, но проще (не будет этого дурацкого отслеживания отставания на один символ)
...
Рейтинг: 0 / 0
programa na C
    #33753617
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gdaRebeata .. vi mojete perepisati viseucazanii primer .. dlia polucenia corectogo rezulitata? plz

Так примера, то нет. Здесь не заложено ни грамма логики. Напиши свой, или предложи алгоритм
...
Рейтинг: 0 / 0
programa na C
    #33753650
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vash algoritm menea ustraivaet vpolmne, vot kak realizovati ego programno, hz
...
Рейтинг: 0 / 0
programa na C
    #33753654
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delo v tom 4to na c uje goda 3 nicego nepisal, pozabil kakie tam voobshe functii, vozjnosti
...
Рейтинг: 0 / 0
programa na C
    #33753679
дед Макар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gdadelo v tom 4to na c uje goda 3 nicego nepisal, pozabil kakie tam voobshe functii, vozjnosti

Это как езда на велосипеде - один раз научился - не разучишься. Забыл - для это есть хелп. Трудности в реализации - покажи что есть, что не работает - здесь подскажут. Или просто ЛЕНЬ писать?
...
Рейтинг: 0 / 0
programa na C
    #33753683
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gdadelo v tom 4to na c uje goda 3 nicego nepisal, pozabil kakie tam voobshe functii, vozjnosti

Тебе понадобится:
1. три флага: int skip, ...;
2. может еще один флаг, для второй части алгоритма.
Если флаг установлен пиши: skip=1 или 2 взависимости от флаго, не установлен: skip=0;
3. Оператор условия:
Код: plaintext
if (skip== 1 ) { /*здесь код*/}
или
Код: plaintext
if (skip== 1 ) { /*здесь код*/} else {/*здесь код*/}

Вроде все
И еще: отрывай файл лучше в режиме "wb" и "rb"

Столкнешься с трудностями пиши, мы поможем.
...
Рейтинг: 0 / 0
programa na C
    #33753761
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gdavash algoritm menea ustraivaet vpolmne, vot kak realizovati ego programno, hz

Да, кстати, жду реализации моего алгоритма. :)
...
Рейтинг: 0 / 0
programa na C
    #33753795
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dumaiu :), rezulitat viloju ...
...
Рейтинг: 0 / 0
programa na C
    #33754379
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
)))

а такой код:

printf("/*Hello!*/, и тут //"); // /*И тут*/


Нормально распарсит?
...
Рейтинг: 0 / 0
programa na C
    #33754421
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman)))

а такой код:

printf("/*Hello!*/, и тут //"); // /*И тут*/

Нормально распарсит?

Нет.

1. Задача поставлена для более простого примера
2. Кавычки легко вписываются в представленный алгоритм. Даже для такого случая:
Код: plaintext
1.
printf("bla bla \" bla");
...
Рейтинг: 0 / 0
programa na C
    #33754615
matan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?php

	$data = preg_replace(
		'[
			/\*.*?\*/

		]sx', '',
		file_get_contents("file.c")
	);

	$data = preg_replace(
		'[
			//.*
		]mx', '',
		$data
	);

	echo $data;

?>
...
Рейтинг: 0 / 0
programa na C
    #33755007
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
29.
30.
31.
32.
33.
34.
35.
#include <stdio.h>

int main(void)
{
    FILE *in, *out;
    char c;
    
    if ( (in=fopen("a","rb")) == NULL )
    {
	fprintf(stderr, "Cannot open input file.\n");
	return  1 ;
    }
    
 
    
    if ( (out=fopen("b","wb")) == NULL )
    {
	fprintf(stderr, "Can/not open output file.\n");
	return  1 ;
    }   
    

    int skip= 0 ;
    while ((c=fgetc(in)) != EOF)
    {
	if ((c=='/') && ((c=fgetc(in))=='/')) skip =  1 ; 	

	if (skip ==  0 ) fputc(c,out);	
	if (c == '\n') skip =  0 ;
    }
			      
    fclose(in);
    fclose(out);    
    
    return  0 ;
}

Testiruiu na primere:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
//total 18
//-rw-r--r--   1 oracle oinstall    0 2006-05-26 08:00 a
//-rw-r--r--   1 oracle oinstall  379 2006-05-26 08:00 a.c
-rwxr-xr-x    1  oracle oinstall  9271   2006 - 05 - 26   08 : 00  a.outdrwxrwxrwx    2  oracle oinstall    80   2006 - 05 - 13   07 : 13  backup
drwxrwxrwx    5  oracle oinstall   448   2006 - 01 - 03   10 : 45  developer6i
drwxr-xr-x    6  oracle oinstall   176   2006 - 05 - 24   06 : 56  gda
//drwxr-xr-x   8 oracle oinstall  504 2006-05-18 11:45 Install
drwxr-xr-x    8  oracle oinstall   200   2004 - 01 - 01   19 : 38  oracle
drwxr-xr-x    5  oracle oinstall   712   2006 - 05 - 18   09 : 38  Scripts
drwx------    6  root   root       152   2006 - 03 - 29   14 : 57  sources
drwxrwxrwx    2  oracle oinstall   128   2006 - 05 - 26   07 : 22  Upload
drwxrwxrwx   34  oracle oin/stall  1248   2005 - 12 - 07   11 : 28  vabank

v rezulitate poluciaiu:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
-rwxr-xr-x    1  oracle oinstall  9271   2006 - 05 - 26   08 : 00  a.out
drwxrwxrwx    2  oracle oinstall    80   2006 - 05 - 13   07 : 13  backup
drwxrwxrwx    5  oracle oinstall   448   2006 - 01 - 03   10 : 45  developer6i
drwxr-xr-x    6  oracle oinstall   176   2006 - 05 - 24   06 : 56  gdadrwxr-xr-x    8  oracle oinstall   200   2004 - 01 - 01   19 : 38  oracle
drwxr-xr-x    5  oracle oinstall   712   2006 - 05 - 18   09 : 38  Scripts
drwx------    6  root   root       152   2006 - 03 - 29   14 : 57  sources
drwxrwxrwx    2  oracle oinstall   128   2006 - 05 - 26   07 : 22  Upload
drwxrwxrwx   34  oracle oinstall  1248   2005 - 12 - 07   11 : 28  vabank

mne ne nravitsea poslednia strocika is rezulitata

Код: plaintext
drwxrwxrwx   34  oracle oinstall  1248   2005 - 12 - 07   11 : 28  vabank

pocemu on udalil "/" is oin/stall , gde oshibka ...
...
Рейтинг: 0 / 0
programa na C
    #33755124
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
	c0=fgetc(in);
	skip= 0 ;
    while ((c1=fgetc(in)) != EOF) {
		//Set skipping
		if ((c0=='/') && (c1=='/')) skip =  1 ; 	

		//Write simbols
		if (skip ==  0 ) {
			fputc(c0,out);
			if (c1=='\n') fputc(c1, out);
		}

		//Prepare to next
		if (c1 == '\n') {
			skip= 0 ;
			c0=fgetc(in);
		} else
			c0=c1;
    }
...
Рейтинг: 0 / 0
programa na C
    #33755135
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gdapocemu on udalil "/" is oin/stall , gde oshibka ...
Вот тут:
Код: plaintext
1.
if ((c=='/') && ((c=fgetc(in))=='/')) skip =  1 ;
...
Рейтинг: 0 / 0
programa na C
    #33755145
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh
Рано! Дал бы ещё человеку время подумать... ))
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / programa na C
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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