| |
|
Conheça um pouco a
linguagem C & C++
1997 - Hackers Iniciantes em Linguagem C
1997 - RoyalBug - thedarkage@mail.geocities.com
1997 - The Black Church MANUAL C 00
================
1997 - http://www.pcs.usp.br/~peasilva/
1997 - http://www.geocities.com/SiliconValley/Way/5441/
1. PROLOGO
==========
Este manual foi desenvolvido para quem nao sabe nada de C/C++!
Se for continuar a ler, eh bom que tenha um saco grande pra aguentar as
coisas que vai ver aqui...
Pra pega o resto de manuais, vai vendo as paginas que tao no cabecalho
desse arquivo.
2. SECOES
=========
Nesta secao eu falo tudo que ce vai aprende com esse manual:
3. Como faco um programa?
A faze um programa
4. Como rodo um programa?
A roda um programa
Dificil ne?
3. Como faco um programa?
=========================
Vamos supor que quero fazer um programa chamado RUYM-DOS 9.5.
Quero que ele pergunte ao usuario em que ano ele nasceu e o programa
diz pro usuario quantos anos ele tem!
Legal esse programa ne?
Voce pega essa sua ideia e cria um arquivo em um editor de texto qual-
quer. Voce digita um monte de codigo estranho no arquivo. O programa esta
criado. Para saber que codigo tem de digitar voce le o royalC01.txt, disponivel
nas paginas da TBC.
4. Como rodo um programa?
=========================
Facinho. Voce pega aquele teu arquivo estranho e " compila". Depois eh
soh executar!
Para compilar um programa eh necessario um compilador. Existem varios.
Existe a descricao de alguns compiladores no arquivo royalc01.txt.
5. Este manual eh muito curto!
==============================
Eh porque ele eh pra pessoas que nao sabem nada! Soh para terem uma
ideia.
Se voce quiser algo bem maior, aparece aqui em casa...
6. O proximo manual vai eh maior? Eh melhor?
============================================
Quando voce ler o proximo manual voce vai poder fazer alguns programi-
nhas.
Ele eh bem maior...
7. Criadores/Colaboradores
==========================
Soh eu mesmo pra fazer isso aqui...
RoyalBug
thedarkage@mail.geocities.com
Colaborador principal: ninguem mesmo
_____________________________________________________________________________
1997 - RoyalBug - thedarkage@geocities.com
1997 - HardLoKi - peasilva@pcs.usp.br
peduardo@hotmail.com
1997 - The Black Church
THKS
1997 - Hackers Iniciantes em Linguagem C
1997 - RoyalBug - thedarkage@mail.geocities.com
thedarkage2@mail.geocities.com
1997 - The Black Church MANUAL C 01
================
1997 - http://www.pcs.usp.br/~peasilva/
1. PROLOGO
==========
Este manual foi desenvolvido para iniciantes em programacao em C e C++.
Quem já conhece alguma linguagem de programacao nao-visual tera faci-
lida de com C e C++. Primeiramente irei ensinar C; todo codigo neste
manual tera uma indicacao se esta em C, C++ ou utiliza recursos de ambos.
Para pegar o #2 deste manual entre em algum destes sites oficiais:
http://www.pcs.usp.br/~peasilva/
http://www.geocities.com/SiliconValley/Way/5441/
http://www.geocities.com/SiliconValley/Bay/4885/
2. Secoes
=========
Nesta secao, descrevo cada uma das outras secoes deste manual:
3. Compiladores
Descricao dos principais compiladores C/C++ para DOS/WINDOWS/UNIX.
4. Programa: Hello World!
Ensina a utilizar saida de dados e variaveis. C
5. Programa: Hello Number!
Ensina a usar entrada de dados. C
6. Programa: Calculadora
Mostra como fazer calculos. C
7. Tabela: printf
Tabela de argumentos possiveis para a funcao printf.
8. Algoritmo: Lendo arquivos
Codigo para ler um arquivo inteiro. Dificuldade (0-20): 0
9. Dica Rapida
10. Proxima edicao
11. Criador/Editor/Colaboradores
As secoes deste "curso" tem um modelo pre-definido:
1. Introducao ao curso
2. Descricao das secoes do arquivo
3. Material sobre alguma coisa
4. Programa Exemplo
5. Programa Exemplo
6. Programa Exemplo
7. Tabela sobre alguma coisa
8. Algoritmo
9. Dica Rapida
10. Na proxima edicao
11. Criador/Editor/Colaboradores
3. Compiladores
===============
Para se rodar um programa em linguagem C/C++ é necessário um compila-
dor. Aqui esta uma lista dos que conheco:
- Borland C++ 5.0 - Windows/Dos - Bom compilador, utilizo sua versao 4
- Watcom 11.0 - Dos - Roda seus programas em modo protegido. Nunca
utilizei.
- Turbo C++ - Windows - Nao sei sua versao atual. Testei a 1.0. Nenhuma
novidade.
- GNU - UNIX - Otimo compilador para UNIX. De graca! Procure-o na NET!
- DJGPP - DOS - Versao do GNU para DOS. De graca! Utilizo ele em meus
programas.
Como compilar seu programa:
- Borland C++ - Digite no DOS: "bcc programa.xxx"
- DJGPP - Digite no DOS:
"gcc programa.c -s -oprograma.exe" - programas em c
"gxx programa.cc -s -oprograma.exe" - programas em c++
4. Programa: Hello World!
=========================
Este programa ensina a usar variaveis e a colocar dados na tela.
<-----------Inicio---------->
/* Programa em C */
#include <stdio.h>
int main(){
int inteiro;
float longo=2.5;
char caracter;
inteiro=1;
caracter='S';
printf("Inteiro: %d\n",inteiro);
printf("Longo: %f\n",longo);
printf("Caracter: %c\n",caracter);
return(0);
}
<----------- Fim ----------->
O codigo anterior esta em C e deve ser compilado como tal.
A primeira linha eh um comentario. Os comentarios em C devem SEMPRE
estar entre "/*" e "*/".
A segunda linha inclui o arquivo "stdio.h" no programa. Este arquivo eh
o arquivo basico para operacoes em C.
A terceira linha diz que a funcao "main" vai comecar. A funcao main eh
a funcao que eh executada quando o programa eh executado. A palavra "int"
que vem antes dela significa que ela retorna um numero inteiro.
A quarta, quinta e sexta linha indicam que existem certas variaveis que
devem existir. Na quarta, a variavel "inteiro" eh declarada como "int",
isto eh, um numero inteiro. Na quinta linha a variavel "longo" eh declara-
da como "float", isto eh, um numero racional. Voce pode perceber o "=2.5"
que significa que a variavel "longo" tera o valor "2.5". Na sexta linha a
variavel caracter eh criada como tipo "caracter": caracter. A setima e a
oitava linha setam as variaveis "inteiro" e "caracter" para "1" e "S"
respectivamente.
Na nona linha, eh usada a funcao "printf". A funcao "printf" esta no
arquivo "stdio.h" que fora incluido no nosso arquivo na primeira linha.
A funcao printf produz impressao formatada para a tela. O texto a ser
imprimido esta entre as aspas: "Inteiro :%d\n". Que exquisito ne?
Nao. Eh normal. O "\n" significa nova linha. O "%d" significa coloca
um inteiro na impressao. No caso, o valor de "inteiro" sera impresso,
preste atencao: "printf("Inteiro: %d\n",inteiro);".
-------
|
|
A decima linha imprime um texto com uma variavel "float" ("%f").
A decima primeira linha imprime uma variavel "caracter" ("%c").
A decima segunda linha acaba o programa, retornando 0 na funcao "main".
Este retorno (retorno de 0) significa que tudo deu certo. Caso tivesse
ocorrido algum erro, devia-se retornar outro numero qualquer.
Como voce ja deve ter visto, toda linha deve ser terminada com um ";",
exceto as com "{" e "}" que significam onde uma instrucao comeca e termina
(de uma olhada onde a funcao main comeca e termina!).
Saida do programa:
Inteiro: 1
Longo: 2.5
Caracter: S
5. Programa: Hello Number!
======================
Este programa ensinara voce a obter dados do usuario.
<-----------Inicio---------->
/* Programa em C: hellonr.c */
#include <stdio.h>
int main(){
int num1=0;
printf("Numero 1: %d\n",num1);
scanf("%d",&num1);
printf("Novo numero: %d\n",num1);
return(0);
}
<----------- Fim ----------->
Nas 3 primeiras linhas nao ha nenhuma novidade. Na linha 4, o
programa inicia uma variavel num1 com valor 0. Na linha 5, ele mostra o
valor de num1. Na linha 6 esta uma novidade. A funcao scanf pega do
usuario um valor qualquer (verifique o %d, igual ao do printf!). A
variavel que vai ser gravada a resposta esta logo depois: num1. "O que eh
aquele &?". Aquilo significa que nao eh o valor que eu estou dando, e sim
o endereco da variavel na memoria. Eh necessario fazer isso nesta funcao.
O valor sera retornado para num1 e impresso na tela novamente (linha 7).
Saida do programa:
Numero 1: 0
15
Novo numero: 15
6. Programa: Calculadora
========================
Mais um programa galera. Este aqui faz calculos matematicos.
<-----------Inicio---------->
/* Programa em C: calc.c */
#include <stdio.h>
int main(){
int num1=0, num2=0, num3=0,num4=0;
int soma=0;
int subtracao=0;
int multiplicacao=0;
int divisao=0;
int resto=0;
printf("Numero 1: ");
scanf("%d",&num1);
printf("Numero 2: ");
scanf("%d",&num2);
printf("Numero 3: ");
scanf("%d",&num3);
printf("Numero 4: ");
scanf("%d",&num4);
/* Calculando */
soma=num1+num2;
subtracao=num2-num3;
multiplicacao=num3*num4;
divisao=num4/num1;
resto=num4%num1;
printf("%d+%d=%d\n",num1,num2,soma);
printf("%d-%d=%d\n",num2,num3,subtracao);
printf("%d*%d=%d\n",num3,num4,multiplicacao);
printf("%d/%d=\t%d\n",num4,num1,divisao);
printf("Resto=\t%d\n",num4,num1,resto);
return(0);
}
<----------- Fim ----------->
Novidades:
Linha 4: Declaramos 4 variaveis em uma so linha! Declare quantas
voce quiser!
Linha 19 ate 23: Fazemos calculos matematicos com +,-,*,
/ (dividido) e % (resto de divisao). O % eh usado para calcular o resto.
Linha 27: Usamos o comando "\t" que significa TAB.
7. Tabela: printf
=================
Simbolo Significado
\n Nova linha
\t TAB
\b Backspace
\\ \
\/ /
\" "
%d integer
%f float
%c cacacter
%s string
%% %
%lf double
8. Algoritmo: Lendo Arquivos
============================
Este codigo ensina a ler um arquivo ate o fim.
ATENCAO: Voce precisa conhecer estas funcoes e estruturas!
<-----------Inicio---------->
while(feof(arq)==FALSE){
fgets(char,1000,arq);
/* faztudo */
}
<----------- Fim ----------->
Substitua a palavra arq pela stream do seu arquivo de leitura.
Serao lidos ate 1000 caracteres de uma linha e rodado o faztudo.
Substitua o /* faztudo */ pelo codigo que voce quiser.
9. Dica Rapida
==============
Como colocar comentarios em uma linha sem usar o "/* */":
Use o seguinte:
<-----------Inicio---------->
comece seu programa aqui
// Comentario
continue seu programa aqui
<----------- Fim ----------->
Em C, o comentario esta sempre entre /* e */.
Em C++ o comentario esta depois de //, sendo assim, o compilador
ignora tudo que vem depois dele nesta linha.
10. Proxima edicao
==================
Secoes da proxima edicao:
1. Introducao
2. Secoes
3. Usando graficos em C
4. Programa: Interpretador
5. Programa: Visualizador de Arquivos
6. Especial: WordMake.Exe - Criador de WordLists
7. Tabela: Nao definida
8. Algoritmo: Numeros Aleatorios
9. Dica Rapida
10. Proxima Edicao
11. Criador/Editor/Colaboradores
Aqui estao os materiais das proximas edicoes:
- Criando arquivos de cabecalho (.H)
- Criando bibliotecas (.A)
- WordLists
- Matrizes
- Mouse em C/C++
- Basico de C++
- Basico de Allegro
- Biblioteca de DEBUG
- Biblioteca de HighScore
11. Criador/Editor/Colaboradores
================================
Criador: RoyalBug - thedarkage@geocities.com
Editor: RoyalBug - thedarkage@geocities.com
Colaborador: Sacanagem! Ninguem!
_____________________________________________________________________________
1997 - RoyalBug - thedarkage@geocities.com
1997 - HardLoKi - peasilva@pcs.usp.br
peduardo@hotmail.com
1997 - The Black Church
THKS
1997 - Hackers Iniciantes em Linguagem C
1997 - RoyalBug - thedarkage@geocities.com
1997 - The Black Church MANUAL C 01
================
1997 - http://www.pcs.usp.br/~peasilva/
1997 - http://www.geocities.com/SiliconValley/Way/5441/
1. PROLOGO
==========
Este manual foi desenvolvido para iniciantes em programacao em C e C++.
Quem ja conhece alguma linguagem de programacao nao-visual tera faci-
lida de com C e C++. Primeiramente irei ensinar C; todo codigo neste manual tera
uma indicacao se esta em C, C++ ou utiliza recursos de ambos.
Para pegar os outros numeros deste manual entre em algum destes sites
oficiais:
http://www.pcs.usp.br/~peasilva/
http://www.geocities.com/SiliconValley/Way/5441/
2. SECOES
=========
Nesta secao, descrevo cada uma das outras secoes deste manual:
3. Novidades
As novidades no mundo da programacao underground
Minhas novidades
4. Usando graficos em C/C++
Como usar graficos de baixo nivel em C/C++
5. Programa: Variavel
Como usar todos os tipos de variaveis
6. CONIO.H
Efeitos especiais nos seus programas
7. Especial: WordMake.exe - Criador de Wordlists
Todo o codigo do MEU criador de wordlists!
8. Tabela: fopen
Varias maneiras de abrir um arquivo
9. Algoritmo: Numeros Aleatorios
Como gerar numeros aleatorios
10. Dica Rapida
Funcao scanf
11. Duvidas/Sugestoes/Reclamacoes
Seu espaco
12. Proxima edicao
Na proxima edicao voce vera...
13. Criador/Editor/Colaboradores
Nem precisa falar
As secoes deste "curso" tem um modelo pre-definido (foi mudado):
1. Introducao ao curso
2. Descricao das secoes do arquivo
3. Novidades
4. Material sobre alguma coisa
5. Programa Exemplo
6. Especial
7. Especial
8. Tabela sobre alguma coisa
9. Algoritmo
10. Dica Rapida
11. Duvidas/Sugestoes/Reclamacoes
12. Na proxima edicao
13. Criador/Editor/Colaboradores
3. NOVIDADES
============
As novidades desde que saiu o royalc01 sao grandes. Mas tenho algumas
mais importantes:
- descoberto o programa JOHN, crackeador mais rapido que o JACK
- estou desenvolvendo um "juntor" de wordlists (meio que inutil!)
- descoberto o programa DATAS, cria uma wordlist com todas as datas do
seculo 20.
- estou pronto para receber materias de outros programadores/hackers
- envie suas duvidas
- caso more em sp e tenha algumas senhas para troca, me avisa, hehehe!
4. USANDO GRAFICOS EM C/C++
===========================
Gente, eu ate tentei! Mas ficou muito grande! Vou fazer o seguinte, vo
explica GRAFICOS basicos para qualquer compilador em alguma revista especial.
OK galera?
Certo.
5. PROGRAMA: VARIAVEL
=====================
Este nao eh bem um programa. Voce coloca os exemplos em um esqueleto.
ESQUELETO
<-----------Inicio---------->
#include <stdio.h>
int main(){
return(0);
}
<----------- Fim ----------->
Coloque os exemplos na 3¦ linha. Provavelmente voce ja sabe pra que ser-
vem as linhas do programa acima (royalc01).
EXEMPLO 1
<-----------Inicio---------->
int a=0,b=1;
printf("a=%d\nb=%d\na+b=%d\n",a,b,a+b);
printf("a=");
scanf("%d",&a);
printf("b=");
scanf("%d",&b);
printf("a+b=%d",a+b);
<----------- Fim ----------->
Este exemplo mostra como usar variaveis INT.
Na 1¦ linha declaramos a variavel "a" valendo 0 e a variavel b valendo
"1".
Na 2¦ linha eh mostrado na tela o valor de "a", "b" e de "a+b".
Na 4¦ linha eh pedido um novo valor para "a". Repare no "&" na frente do
"a". Significa para passar o endereco na memoria da variavel "a" para a funcao
"scanf". Na 6¦ linha eh pedido um novo valor para "b".
Na 7¦ linha eh revelada a soma de "a" e "b".
EXEMPLO 2
<-----------Inicio---------->
float a=0,b=1;
printf("a=%f\nb=%f\na+b=%f\n",a,b,a+b);
printf("a=");
scanf("%f",&a);
printf("b=");
scanf("%f",&b);
printf("a+b=%f",a+b);
<----------- Fim ----------->
Este exemplo eh identico ao primeiro, mas com variaveis "float".
EXEMPLO 3
<-----------Inicio---------->
char a='a',b='n',c="o";
printf("%c%c%c\n",a,b,c);
printf("a=");
scanf("%c",&a);
printf("b=");
scanf("%c",&b);
printf("c=");
scanf("%c",&c);
printf("%c%c%c",a,b,c);
<----------- Fim ----------->
Este exemplo usa variaveis de caracteres.
Na 1¦ linha sao declaradas 3 variaveis: "a", "b" e "c", cada qual com
seu valor.
Na 2¦ linha eh mostrado o valor das 3 seguidas: "ano".
Nas linhas 4,6,8 sao pedidos novos valores para as 3 variaveis.
Na ultima linha eh mostrado os 3 valores.
EXEMPLO 4
<-----------Inicio---------->
char a[21]="RoyalBug RULEZ\0";
printf("%s\n",a);
printf("a=");
scanf("%s",a);
printf("%s",a);
<----------- Fim ----------->
Este exemplo eh algo que voce nunca viu?
Certo, entao vou explicar devagarinho...
Seguinte, a primeira linha ta criando uma variavel char. Ela nao eh uma
variavel comum. Ela se constitui de vinte e umas variaveis char. Entendeu?
Ela eh inicializada como "RoyalBug RULEZ\0".
O "\0" significa o fim dessa colecao de caracteres. Essa colecao eh cha-
mada de matriz. O "\n" poderia indicar o fim tambem.
Essa matriz possui 21 espacos para serem preenchidos, o que significa
que vao desde o 0 ate o 20; completando 21 espacos. Sempre comeca no 0!
Voce tem os 20 primeiros espacos (0 ate 19) de uso livre para voce; o
vigesimo primeiro espaco (20) deve ser o "\0" ou o "\n".
Para acessar o 5§ caracter da matriz de caracteres "a" basta usar o
seguinte:
"a[4]"
A 2¦ linha usa o "%s" para mostrar a STRING (matriz de caracteres) "a".
A 5¦ linha pede um novo valor para "a" (maximo de 20 caracteres).
6. CONIO.H
==========
Esta biblioteca eh usada para fazer coisas mais bonitas no seu programa.
Quando comecei a programar em C (1995) fiz uma pequena biblioteca em
portugues que usava somente o CONIO.H para colorir seu programa.
Esta biblioteca estara em um especialH sobre o proprio CONIO.H.
7. Especial: WordMake.Exe
=========================
Eh isso ai! Meu criador de dicionarios! Feito em C!
Todo o codigo pra voce! Se quiser mudar, mude! Mas deixe meus creditos!
Caso mude mesmo, mande-me sua versao (o arquivo C) e colocarei creditos
para voce tambem.
Aproveitem e estudem ele porque nao vo te saco pra explicar ele! :)
<-----------Inicio---------->
#include <stdio.h>
#include <conio.h>
int numero_de_caracteres=0;
char linhas[12][256];
char arquivo[20001];
inline void comeca(void){
char linha[256];
char numero_de_caracteres_char='0',temp='\n';
int x=0;
FILE *file;
clrscr();
printf("Arquivo a ser lido (- para sair): ");
scanf("%s",arquivo);
if(arquivo[0]=='-') exit(1);
file=fopen(arquivo,"r");
if(file==NULL) return;
numero_de_caracteres_char=fgetc(file);
numero_de_caracteres=(int)numero_de_caracteres_char-48;
if(numero_de_caracteres<1) return;
temp=fgetc(file);
for(x=0;x<numero_de_caracteres;x++){
fscanf(file,"%s",linha);
strcpy(linhas[x],linha);
}
fclose(file);
}
inline void mostra(void){
int x=0;
clrscr();
printf("Numero de caracteres: %d\n",numero_de_caracteres);
for(x=0;x<numero_de_caracteres;x++){
printf("Caracteres %d possiveis: %s\n",x+1,linhas[x]);
}
}
inline void pede_arquivo_para_salvar(void){
printf("Arquivo a ser gravado (- para sair): ");
scanf("%s",arquivo);
if(arquivo[0]=='-') exit(1);
}
inline void salva(void){
FILE *file;
int caracter_atual[12];
int i;
for(i=0;i<12;i++)caracter_atual[i]=0;
file=fopen(arquivo,"w");
for(caracter_atual[0]=0;(linhas[0][caracter_atual[0]]=='~')==0;caracter_atual[0]++){
if(numero_de_caracteres!=1){
for(caracter_atual[1]=0;(linhas[1][caracter_atual[1]]=='~')==0;caracter_atual[1]++){
if(numero_de_caracteres!=2){
for(caracter_atual[2]=0;(linhas[2][caracter_atual[2]]=='~')==0;caracter_atual[2]++){
if(numero_de_caracteres!=3){
for(caracter_atual[3]=0;(linhas[3][caracter_atual[3]]=='~')==0;caracter_atual[3]++){
if(numero_de_caracteres!=4){
for(caracter_atual[4]=0;(linhas[4][caracter_atual[4]]=='~')==0;caracter_atual[4]++){
if(numero_de_caracteres!=5){
for(caracter_atual[5]=0;(linhas[5][caracter_atual[5]]=='~')==0;caracter_atual[5]++){
if(numero_de_caracteres!=6){
for(caracter_atual[6]=0;(linhas[6][caracter_atual[6]]=='~')==0;caracter_atual[6]++){
if(numero_de_caracteres!=7){
for(caracter_atual[7]=0;(linhas[7][caracter_atual[7]]=='~')==0;caracter_atual[7]++){
if(numero_de_caracteres!=8){
for(caracter_atual[8]=0;(linhas[8][caracter_atual[8]]=='~')==0;caracter_atual[8]++){
if(numero_de_caracteres!=9){
for(caracter_atual[9]=0;(linhas[9][caracter_atual[9]]=='~')==0;caracter_atual[9]++){
if(numero_de_caracteres!=10){
for(caracter_atual[10]=0;(linhas[10][caracter_atual[10]]=='~')==0;caracter_atual[10]++){
if(numero_de_caracteres!=11){
for(caracter_atual[11]=0;(linhas[11][caracter_atual[11]]=='~')==0;caracter_atual[11]++){
fprintf(file,"%c%c%c%c%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][caracter_atual[6]],linhas[7][caracter_atual[7]],linhas[8][caracter_atual[8]],linhas[9][caracter_atual[9]],linhas[10][caracter_atual[10]],linhas[11][caracter_atual[11]]);
}
}
else fprintf(file,"%c%c%c%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][caracter_atual[6]],linhas[7][caracter_atual[7]],linhas[8][caracter_atual[8]],linhas[9][caracter_atual[9]],linhas[10][caracter_atual[10]]);
}
}
else fprintf(file,"%c%c%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][caracter_atual[6]],linhas[7][caracter_atual[7]],linhas[8][caracter_atual[8]],linhas[9][caracter_atual[9]]);
}
}
else fprintf(file,"%c%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][caracter_atual[6]],linhas[7][caracter_atual[7]],linhas[8][caracter_atual[8]]);
}
}
else fprintf(file,"%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][caracter_atual[6]],linhas[7][caracter_atual[7]]);
}
}
else fprintf(file,"%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][caracter_atual[6]]);
}
}
else fprintf(file,"%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]]);
}
}
else fprintf(file,"%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],linhas[4][caracter_atual[4]]);
}
}
else fprintf(file,"%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]]);
}
}
else fprintf(file,"%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]]);
}
}
else fprintf(file,"%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_atual[1]]);
}
}
else fprintf(file,"%c\n",linhas[0][caracter_atual[0]]);
}
fclose(file);
}
inline void apresenta(void){
textmode(C80);
textcolor(12);
cprintf("WordMake.Exe ");
textcolor(10);
cprintf(" -> ");
textcolor(14+BLINK);
cprintf(" RoyalBug\n");
textcolor(12);
gotoxy(1,2);
cprintf("Versao 1.0 ");
textcolor(10);
cprintf(" -> ");
textcolor(14+BLINK);
cprintf("thedarkage@geocities.com\n");
gotoxy(1,1);
delay(2000);
}
inline void fim(void){
textmode(C80);
textcolor(12);
cprintf("WordMake.Exe ");
textcolor(10);
cprintf(" -> ");
textcolor(14+BLINK);
cprintf(" RoyalBug\n");
textcolor(12);
gotoxy(1,2);
cprintf("Versao 1.0 ");
textcolor(10);
cprintf(" -> ");
textcolor(14+BLINK);
cprintf("thedarkage@geocities.com\n");
gotoxy(1,1);
delay(1500);
}
int main(){
apresenta();
comeca();
mostra();
pede_arquivo_para_salvar();
salva();
fim();
return(0);
}
<----------- Fim ----------->
Eu sei que ele eh lento e tudo mais mas na proxima versao vai usar
8 mega ram: rapidinho...
8. TABELA: fopen
================
Modos de abrir um arquivo:
/-------------------\
|r Leitura |
|w Gravacao |
|a Acrescentar|
\-------------------/
Voce pode acrescentar "b" para abrir em modo binario.
Tambem pode acrescentar "t" para abrir em modo texto (default).
9. ALGORITMO: NUMEROS ALEATORIOS
================================
Voce quer gerar um numero qualquer?
Quer jogar dois dados?
Aqui esta um algoritmo que joga dois dados de 6 lados:
<-----------Inicio---------->
time_t t;
float dado1=0,dado2=0;
srand((unsigned) time(&t));
dado1=random(6)+1;
dado2=random(6)+1;
<----------- Fim ----------->
Eh necessario incluir alguns arquivos com os seguintes comandos:
#include <stdlib.h>
#include <time.h>
Este codigo nao funciona com o DJGPP.
10. DICA RAPIDA
===============
A funcao scanf pode pegar duas variaveis de uma so vez da seguinte mane-
ira:
scanf("%d%d",&inteiro1,&inteiro2);
11. DUVIDAS/SUGESTOES/RECLAMACOES
=================================
PINy (sem e-mail)
Ta legal, poderia colocar mais programas exemplos
e falar alguma coisa para quem quer usar C em UNIX.
RoyalBug
Seguinte cara, se eu coloco 2 programas exemplos, vai
ficar muuuuito grande. Se voce quer usar C em UNIX use
o GCC.
Ei gente, ve se coloca um mail pra reply!
Esse ai eu fiquei sem responder!
Essa foi a unica sugestao... contribui ai...
12. PROXIMA EDICAO
==================
-> Criando arquivos de cabecalho (.H)
-> Matrizes
-> Basico de Mouse em C
13. Criador/Editor/Colaboradores
Criador: RoyalBug - thedarkage@geocities.com
Editor: RoyalBug - thedarkage@geocities.com
Colaborador: Sacanagem! Ninguem!
_____________________________________________________________________________
1997 - RoyalBug - thedarkage@geocities.com
1997 - HardLoKi - peasilva@pcs.usp.br
1997 - The Black Church
THKS
|
|