Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #pragma warning(disable : 4996) //for VS to permit fopen
- /*Prints all the strings starting from "hello" from file which name is typed in by user*/
- int getfilename(char *filename, const int maxlen);
- void printstrings(char *filename, char *compareto, const int maxlen);
- int main(void) {
- const int maxlen = 100;
- char * filename = (char *)calloc(maxlen + 1, sizeof(char));
- char compareto[] = "hello";
- int flag = getfilename(filename, maxlen);
- if (flag == -1) {
- printf("error: filename too long\n");
- return -1;
- }
- printf("Opening file: %s\n", filename);
- printstrings(filename, compareto, maxlen);
- free(filename);
- return 0;
- }
- int getfilename(char *filename, const int maxlen) {
- int buf;
- int i = 0;
- printf("enter full path to file\n");
- while ((buf = getc(stdin)) != NULL && buf != '\n' && buf != ' ' && i <= maxlen)
- filename[i++] = buf;
- if (i == maxlen)
- return -1;
- return 0;
- }
- void printstrings(char *filename, char *compareto, const int maxlen) {
- FILE * fp = fopen(filename, "r"); //c://input.txt
- int *buf = (char *)calloc(maxlen, sizeof(char));
- int i = 0;
- if (fp == NULL) {
- printf("error opening file\n");
- exit(-1);
- }
- while (buf[0] != '\n' && buf[0] != EOF) {
- int flag = 1;
- for (i = 0; i < maxlen && (buf[i] = getc(fp)) != '\n'; i++) {
- if (feof(fp)) {
- printf("error reading file\n");
- exit(-1);
- }
- buf[i] ;
- }
- i = 0;
- while (compareto[i] != 0) {
- if (compareto[i] != buf[i]) { //if first substring of buf isn't "hello"
- flag = 0;
- break;
- }
- i++;
- }
- if (flag == 1) {
- i = 0;
- while (buf[i] != 0) {
- putc(buf[i], stdout);
- buf[i] = 0;
- i++;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement