Aktív témák
-
QuarK
senior tag
Egyelőre nem szimatolok lincshangulatot, így beillesztek ide egy forráskódot, aminek segítségével mások által beillesztett forráskód is ilyen szépen lesz formázva, nem díszítik smiley-k, és az aposztrof gond se jön elő. A lényeg: kódrészlet az input.txt-ben, pre futtatása, output.txt tartalmazza, amit a hsz-be írni kell...
Remélem műxik. -
QuarK
senior tag
Itt a jó változat.
#include <windows.h>
#include <stdio.h>
#define BUFFER_SIZE 0x10000
char *inbuf, outbuf[BUFFER_SIZE];
void W_Error( char *error, ...)
{
va_list argptr;
char text[1024];
va_start( argptr, error);
vsprintf( text, error, argptr);
va_end( argptr);
printf( "Error: %s\n", text);
exit( 1);
}
int W_filelength( FILE *f)
{
int pos;
int end;
pos = ftell( f);
fseek( f, 0, SEEK_END);
end = ftell( f);
fseek( f, pos, SEEK_SET);
return end;
}
int W_FOpenFile( char *filename, FILE **file)
{
*file = fopen( filename, "rb");
if ( !*file)
{
*file = NULL;
return -1;
}
return W_filelength( *file);
}
void W_Read( void *buffer, int len, FILE *f)
{
int block, remaining;
int read;
byte *buf;
buf = ( byte*)buffer;
remaining = len;
while ( remaining)
{
block = remaining;
if ( block > BUFFER_SIZE)
block = BUFFER_SIZE;
read = fread( buf, 1, block, f);
if ( read == 0)
W_Error( "W_Read: 0 bytes read");
if (read == -1)
W_Error( "W_Read: -1 bytes read");
remaining -= read;
buf += read;
}
}
int W_LoadFile( char *path, void **buffer)
{
FILE *h;
byte *buf;
int len;
buf = NULL;
len = W_FOpenFile( path, &h);
if ( !h)
{
if ( buffer)
*buffer = NULL;
return -1;
}
if ( !buffer)
{
fclose( h);
return len;
}
buf = malloc( len + 1);
*buffer = buf;
W_Read( buf, len, h);
buf[len] = 0;
fclose( h);
return len;
}
void I_strncpy( char *dest, char *src, int count)
{
while ( *src && count--)
*dest++ = *src++;
if ( count)
*dest++ = 0;
}
void I_sprintf( char *dest, int size, char *fmt, ...)
{
int len;
va_list argptr;
char bigbuffer[BUFFER_SIZE];
if ( size > BUFFER_SIZE)
W_Error( "I_sprintf: size is > 64k\n");
va_start( argptr, fmt);
len = vsprintf( bigbuffer, fmt, argptr);
va_end( argptr);
I_strncpy( dest, bigbuffer, size - 1);
}
int main( int argc, char **argv)
{
int i, j, dontadd, linelen;
char *ob, *token;
FILE *f;
W_LoadFile( "input.txt", &inbuf);
token = inbuf;
ob = &outbuf[0];
linelen = 0;
for ( i = 0; i < strlen( token); i++)
{
dontadd = 0;
if ( token[i] == '&')
{
I_sprintf( ob, BUFFER_SIZE - ( ob - &outbuf[0]), "&[b][/b]");
ob += 8;
dontadd = 1;
}
if ( token[i] == ' ')
{
I_sprintf( ob, BUFFER_SIZE - ( ob - &outbuf[0]), " ");
ob += 6;
dontadd = 1;
}
if ( token[i] == '\x9')
{
int len;
len = 8 - ( linelen % 8);
for ( j = 0; j < len; j++, ob += 6)
I_sprintf( ob, BUFFER_SIZE - ( ob - &outbuf[0]), " ");
dontadd = 1;
}
if ( token[i] == ':')
{
I_sprintf( ob, BUFFER_SIZE - ( ob - &outbuf[0]), ":[b][/b]");
ob += 8;
dontadd = 1;
}
if ( token[i] == '[')
{
I_sprintf( ob, BUFFER_SIZE - ( ob - &outbuf[0]), "[[b][/b]");
ob += 8;
dontadd = 1;
}
if ( token[i] == '\"')
{
I_sprintf( ob, BUFFER_SIZE - ( ob - &outbuf[0]), """);
ob += 6;
dontadd = 1;
}
linelen++;
if ( token[i] == '\n')
{
*ob++ = '\n';
dontadd = 1;
linelen = 0;
}
if ( token[i] == '\r')
{
linelen = 0;
dontadd = 1;
}
if ( dontadd == 0)
*ob++ = token[i];
}
f = fopen( "output.txt", "w");
fprintf( f, "%s", outbuf);
fclose( f);
*ob = 0;
return 0;
} -
Miracle
senior tag
a program otlete zsenialis, mar tobbszor is akadt ezzel gondom, de meg nem jutott eszembe, h kellene valami!!!! grat! remelem nem zavar, en is ideteszek egy hasonlo progit, ami windows, es linux alatt is mukodik.(mert itt ugy vannak ilyen userek is, pl. en)
szerk: a tabokat(fujj) 4szokozos indentte alakitja, ha nem adunk meg parametert akkor az input.txt-bol alakit az output.txt-be, ha adunk neki ket parametert, akkor az elsobol a masodikba dolgozik.
t(fujj) 4szokozos indentte alakitja, ha nem adunk meg parametert akkor az input.txt-bol alakit az output.txt-be, ha adunk neki ket parametert, akkor az elsobol a masodikba dolgozik.
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ifstream is((argc == 3)?argv[1]:''input.txt'');
ofstream os((argc == 3)?argv[2]:''output.txt'');
char c;
while(is.get(c)) if (c == ' ') os << '' '';
else if (c == '\t') os << '' '';
else os << c;
}
[Szerkesztve]értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
-
Miracle
senior tag
na szoval a motor beleganyolt a kodocskamba, itt a mukodo valtozat:
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ifstream is((argc == 3)?argv[1]:''input.txt'');
ofstream os((argc == 3)?argv[2]:''output.txt'');
char c;
while(is.get(c)) if (c == ' ') os << '' '';
else if (c == '\t') os << '' '';
else os << c;
}értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
QuarK
senior tag
egy szemtelen up, hogy látszódjon, ha kéne vkinek...
Aktív témák
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- Frissült a MediaTek középkategóriás ajánlata
- ASUS routerek
- WLAN, WiFi, vezeték nélküli hálózat
- Total Commander
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Amazon
- 3D nyomtatás
- Kínai, és egyéb olcsó órák topikja
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...