Hola, debo hacer un codigo en el que se lean las palabras que contiene un archivo de n extensión determinada por el usuario, y luego sólo ésts se impriman en otro archivo..
eeh realizado ésto de código, pero me marca errores.. :S
como soy novata, no se si puedan darle una vista porfis :)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main (){
FILE*original, *copia;
int countchar=0, countword=0, countline=0, i=0;
char c, palabras[5];
original = fopen("copia.txt", "w+");
while ((c =fgetc (original))! = EOF){
swith (c){
case "\n"
case"\0"
case"\13"
fputc(c, copia);
case " ";
if (countchar==5){
for (i=0, i<5; i++){
fputc(palabra, copia);
countword++;
}
if (c==" ") fput(c, copia);
}
countchar =0;
break;
default;
if (countchar<5)
palabra[countchar] =c;
countchar++;
}
}
fclose(original);
fclose(copia);
printf("Palabras encontradas:%d \n", countword);
system("pause);
}
Hola ginny1685. Por empezar tenés varios errores básicos:
swith( c ) {
Debería ser:
switch( c ) { // falta una letra C
En este código:
case "\n"
case "\0"
case "\13"
Faltan los dos puntos de cada case y seguramente querés agregarles un break porque sino pasa de largo. Además de que lleva comillas simples, porque comparás un solo carácter.
case '\n':
// hacer cosas
break;
case '\0':
// hacer cosas
break;
case '\13':
// hacer cosas
break;
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main (){
FILE*original, *copia;
int countchar=0, countword=0, countline=0, i=0;
char c, palabras[5];
original = fopen("copia.txt", "w+");
while ((c =fgetc (original))! = EOF){
swith (c){
case "\n"
case"\0"
case"\13"
fputc(c, copia);
case " ";
if (countchar==5){
for (i=0, i<5; i++){
fputc(palabra, copia);
countword++;
}
if (c==" ") fput(c,"%c" copia);
}
countchar =0;
break;
default;
if (countchar<5)
palabra[countchar] =c;
countchar++;
}
}
fclose(original);
fclose(copia);
printf("Palabras encontradas:%d \n", countword);
system("pause);
}
mmm no entiendo para q los casos... te falta mandar fputc el char q vas a escribir... para mi q los casos no son necesarios, ya que no realizas nada con ellos :)
A como veo lo que quiere es solo hacer una copia del archivo y luego contar el total de palabras encontradas en el.
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
FILE *original;
FILE *copia;
int palabras = 0, error;
char nombre[20], copianombre[40] = "copia_", linea[100], *pch;
do{
error = 0;
cout << "Nombre del archivo (sin inclui .txt): ";
cin >> nombre;
strcat(nombre, ".txt");
original = fopen(nombre, "r");
if(original == NULL)
{
error = 1;
cout << "El archivo no existe, o no se logro abrir" << endl;
}
}while(error == 1);
strcat(copianombre, nombre);
copia = fopen(copianombre, "w+");
while(fgets(linea, 100, original) != NULL)
{
fputs(linea, copia);
pch = strtok(linea, " \n");
while(pch != NULL)
{
palabras++;
pch = strtok(NULL, " \n");
}
}
fclose(original);
fclose(copia);
cout << "Total de Palabras: " << palabras;
cin.get();cin.get();
return 0;
}
hola.. gracias por sus ayudas, y creo que no me di a entender bien ...
lo que necesito es que primero el programa le pregunte al usuario de cuantas letras deben ser ls palabras a buscar, luego que busque en un archivo todas las palabras de la extension adecuada y las imprima en otro archivo en el mismo lugar donde las encontró en el archivo original..
y como extra, el nuevo archivo que se crea debe llevar como nombre el numero de caracteres que tienen las palabras que se buscaron :S